home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / docs / inter45c / ports.lst < prev    next >
File List  |  1995-03-26  |  136KB  |  3,680 lines

  1. [This file was provided by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl).]
  2. Last Change: 3/26/95
  3.  
  4.  
  5.         XT, AT and PS/2     I/O port addresses
  6.  
  7.       Do NOT consider this information as complete and accurate.
  8.       If you want to do harware programming check ALWAYS the
  9.       appropriate data sheets. Be aware that erroneously programming
  10.       can put your hardware or your data at risk. 
  11.  
  12.       There is a memory mapped address in use for I/O functions of which I
  13.       think it should be mentioned here. See at the end of this list.
  14.  
  15. -------------------------------------------------------------------------------
  16. 0000-001F ----    DMA 1    (first Direct Memory Access controller 8237)
  17.  
  18. 0000    r/w    DMA channel 0  address    byte  0, then byte 1.
  19. 0001    r/w    DMA channel 0 word count byte 0, then byte 1.
  20. 0002    r/w    DMA channel 1  address    byte  0, then byte 1.
  21. 0003    r/w    DMA channel 1 word count byte 0, then byte 1.
  22. 0004    r/w    DMA channel 2  address    byte  0, then byte 1.
  23. 0005    r/w    DMA channel 2 word count byte 0, then byte 1.
  24. 0006    r/w    DMA channel 3  address    byte  0, then byte 1.
  25. 0007    r/w    DMA channel 3 word count byte 0, then byte 1.
  26.  
  27. 0008    r    DMA channel 0-3 status register
  28.          bit 7 = 1  channel 3 request
  29.          bit 6 = 1  channel 2 request
  30.          bit 5 = 1  channel 1 request
  31.          bit 4 = 1  channel 0 request
  32.          bit 3 = 1  channel terminal count on channel 3
  33.          bit 2 = 1  channel terminal count on channel 2
  34.          bit 1 = 1  channel terminal count on channel 1
  35.          bit 0 = 1  channel terminal count on channel 0
  36.  
  37. 0008    w    DMA channel 0-3 command register
  38.          bit 7 = 1  DACK sense active high
  39.                = 0  DACK sense active low
  40.          bit 6 = 1  DREQ sense active high
  41.                = 0  DREQ sense active low
  42.          bit 5 = 1  extended write selection
  43.                = 0  late write selection
  44.          bit 4 = 1  rotating priority
  45.                = 0  fixed priority
  46.          bit 3 = 1  compressed timing
  47.                = 0  normal timing
  48.          bit 2 = 1  enable controller
  49.                = 0  enable memory-to-memory
  50.  
  51. 0009    w    DMA write request register
  52.  
  53. 000A    r/w    DMA channel 0-3 mask register
  54.          bit 7-3 = 0   reserved
  55.          bit 2     = 0   clear mask bit
  56.              = 1   set mask bit
  57.          bit 1-0 = 00  channel 0 select
  58.              = 01  channel 1 select
  59.              = 10  channel 2 select
  60.              = 11  channel 3 select
  61.  
  62. 000B    w    DMA channel 0-3 mode register
  63.          bit 7-6 = 00  demand mode
  64.              = 01  single mode
  65.              = 10  block mode
  66.              = 11  cascade mode
  67.          bit 5     = 0   address increment select
  68.              = 1   address decrement select
  69.          bit 3-2 = 00  verify operation
  70.              = 01  write to memory
  71.              = 10  read from memory
  72.              = 11  reserved
  73.          bit 1-0 = 00  channel 0 select
  74.              = 01  channel 1 select
  75.              = 10  channel 2 select
  76.              = 11  channel 3 select
  77.  
  78. 000C    w    DMA clear byte pointer flip-flop
  79. 000D    r    DMA read temporary register
  80. 000D    w    DMA master clear
  81. 000E    w    DMA clear mask register
  82. 000F    w    DMA write mask register
  83.  
  84. -------------------------------------------------------------------------------
  85. 0010-001F ----    DMA controller (8237) on PS/2 model 60 & 80
  86.  
  87. -------------------------------------------------------------------------------
  88. 0018    w    PS/2 extended function register
  89.  
  90. -------------------------------------------------------------------------------
  91. 001A        PS/2 extended function execute
  92.  
  93. -------------------------------------------------------------------------------
  94. 0020-003F ----    PIC 1    (Programmable Interrupt Controller 8259)
  95.  
  96. 0020    w    PIC initialization command word ICW1
  97.          bit 7-5 = 0  only used in 80/85 mode
  98.          bit 4     = 1  ICW1 is being issued
  99.          bit 3     = 0  edge triggered mode
  100.              = 1  level triggered mode
  101.          bit 2     = 0  successive interrupt vectors use 8 bytes
  102.              = 1  successive interrupt vectors use 4 bytes
  103.          bit 1     = 0  cascade mode
  104.              = 1  single mode, no ICW3 needed
  105.          bit 0     = 0  no ICW4 needed
  106.              = 1  ICW4 needed
  107.  
  108. 0021    w    PIC  ICW2,ICW3,ICW4 after ICW1 to 0020
  109.         ICW2:
  110.          bit 7-3 = address lines A0-A3 of base vector address for PIC
  111.          bit 2-0 = reserved
  112.         ICW3:
  113.          bit 7-0 = 0  slave controller not attached to corresponding
  114.                   interrupt pin
  115.              = 1  slave controller attached to corresponding
  116.                   interrupt pin
  117.         ICW4:
  118.          bit 7-5 = 0  reserved
  119.          bit 4     = 0  no special fully-nested mode
  120.              = 1  special fully-nested mode
  121.          bit 3-2 = 0x nonbuffered mode
  122.              = 10 buffered mode/slave
  123.              = 11 buffered mode/master
  124.          bit 1     = 0  normal EOI
  125.              = 1  Auto EOI
  126.          bit 0     = 0  8085 mode
  127.              = 1  8086/8088 mode
  128.  
  129. 0021    r/w    PIC master interrupt mask register
  130.         OCW1:
  131.          bit 7 = 0  enable parallel printer interrupt
  132.          bit 6 = 0  enable diskette interrupt
  133.          bit 5 = 0  enable fixed disk interrupt
  134.          bit 4 = 0  enable serial port 1 interrupt
  135.          bit 3 = 0  enable serial port 2 interrupt
  136.          bit 2 = 0  enable video interrupt
  137.          bit 1 = 0  enable keyboard, mouse, RTC interrupt
  138.          bit 0 = 0  enable timer interrupt
  139.  
  140. 0020    r    PIC  interrupt request/in-service registers by OCW3
  141.         request register:
  142.          bit 7-0 = 0  no active request for the corresponding int. line
  143.              = 1  active request for corresponding interrupt line
  144.         in-service register:
  145.          bit 7-0 = 0  corresponding line not currently being serviced
  146.              = 1  corresponding int. line currently being serviced
  147.  
  148. 0020    w    OCW2:
  149.          bit 7-5 = 000    rotate in auto EOI mode (clear)
  150.              = 001    nonspecific EOI
  151.              = 010    no operation
  152.              = 011    specific EOI
  153.              = 100    rotate in auto EOI mode (set)
  154.              = 101    rotate on nonspecific EOI command
  155.              = 110    set priority command
  156.              = 111    rotate on specific EOI command
  157.          bit 4     = 0    reserved
  158.          bit 3     = 0    reserved
  159.          bit 2-0    interrupt request to which the command applies
  160.  
  161. 0020    w    PIC OCW3
  162.          bit 7     = 0   reserved
  163.          bit 6-5 = 0x  no operation
  164.              = 10  reset special mask
  165.              = 11  set special mask
  166.          bit 4     = 0   reserved
  167.          bit 3     = 1   reserved
  168.          bit 2     = 0   no poll command
  169.              = 1   poll command
  170.          bit 1-0 = 0x  no operation
  171.              = 10  read int.request register on next read at 0020
  172.              = 11  read int.in-service register on next read 0020
  173.  
  174. -------------------------------------------------------------------------------
  175. 0022-002B ----    Intel 82355, part of chipset for 386sx
  176.          initialisation in POST will disable these addresses,
  177.          only a hard reset will enable them again.
  178.  
  179. 0022    r/w    82335 MCR memory configuration register
  180. 0024        82335 RC1 roll compare register
  181. 0026        82335 RC2 roll compare register
  182. 0028        82335 CC0 compare register
  183. 002A        82335 CC1 compare register
  184.  
  185.           values for CC0 and CC1:
  186.           00F9,0000  enable range compare CC0 0-512K  CC1 disable
  187.           00F1,0000  enable range compare CC0 0-1024K CC1 disable
  188.           00F1,10F9  enable range compare CC0 0-1M    CC1 1M-1M5
  189.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  190.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  191.           00C1,0000  enable range compare CC0 0-4M    CC1 disable
  192.           00C1,40E1  enable range compare CC0 0-4M    CC1 4M-6M
  193.           0081,0000  enable range compare CC0 0-8M    CC1 disable
  194.  
  195. -------------------------------------------------------------------------------
  196. 0022-0025 ----    Intel 82360SL Chipset (for 386SL)
  197.  
  198. 0022    w    CPU write mode register
  199.         bit 0: unlock configuration space
  200.         bit 1: enable selected unit
  201.         bits 3-2: unit
  202.             00 memory configuration
  203.             01 cache
  204.             10 internal bus
  205.             11 external bus
  206.  
  207. 0023    r       configuration status register
  208.         bit 7: 82360 configuration is open
  209.  
  210. 0024    w       82360 configuration index
  211. 0025    r/w    82360 configuration data
  212.  
  213. -------------------------------------------------------------------------------
  214. 0022-0023 ----    Chip Set Data
  215.  
  216. 0022    w    index for accesses to data port
  217. 0023    r/w    chip set data
  218.  
  219. -------------------------------------------------------------------------------
  220. 0022-0023 ----    Cyrix Cx486SLC/DLC processor Cache Configuration Registers
  221.  
  222. 0022    w    index for accesses to next port
  223.         C0h CR0
  224.         C1h CR1
  225.         C4h non-cacheable region 1, start address bits 31-24
  226.         C5h non-cacheable region 1, start address bits 23-16
  227.         C6h non-cacheable region 1, start addr 15-12, size (low nibble)
  228.         C7h non-cacheable region 2, start address bits 31-24
  229.         C8h non-cacheable region 2, start address bits 23-16
  230.         C9h non-cacheable region 2, start addr 15-12, size (low nibble)
  231.         CAh non-cacheable region 3, start address bits 31-24
  232.         CBh non-cacheable region 3, start address bits 23-16
  233.         CCh non-cacheable region 3, start addr 15-12, size (low nibble)
  234.         CDh non-cacheable region 4, start address bits 31-24
  235.         CEh non-cacheable region 4, start address bits 23-16
  236.         CFh non-cacheable region 4, start addr 15-12, size (low nibble)
  237. 0023    r/w    cache configuration register array (indexed by port 0022h)
  238.  
  239.         non-cacheable region sizes:
  240.          00h  disabled
  241.          01h  4K
  242.          02h  8K
  243.          03h  16K
  244.          04h  32K
  245.          05h  64K
  246.          06h  128K
  247.          07h  256K
  248.          08h  512K
  249.          09h  1M
  250.          0Ah  2M
  251.          0Bh  4M
  252.          0Ch  8M
  253.          0Dh  16M
  254.          0Eh  32M
  255.          0Fh  4G
  256.  
  257.         Configuration Register 0 format:
  258.          bit 0    "NC0" first 64K of each 1M noncacheable in real/V86
  259.          bit 1    "NC1" 640K-1M noncacheable
  260.          bit 2    "A20M" enables A20M# input pin
  261.          bit 3    "KEN"  enables KEN# input pin
  262.          bit 4    "FLUSH" enables KEN# input pin
  263.          bit 5    "BARB" enables internal cache flushing on bus holds
  264.          bit 6    "C0" cache direct-mapped instead of 2-way associative
  265.          bit 7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  266.  
  267.         Configuration Register 1 format;
  268.          bit 0    "RPL" enables output pins RPLSET and RPLVAL#
  269.  
  270. -------------------------------------------------------------------------------
  271. 0026-0027 ----    Power Management
  272.  
  273. 0026    w    index for data port
  274. 0027    r/w    power management data
  275.  
  276. -------------------------------------------------------------------------------
  277. 0038-003F ----    PC radio by CoZet Info Systems
  278.         The I/O address range is dipswitch selectable from:
  279.            038-03F and 0B0-0BF
  280.            078-07F and 0F0-0FF
  281.            138-13F and 1B0-1BF
  282.            178-17F and 1F0-1FF
  283.            238-23F and 2B0-2BF
  284.            278-27F and 2F0-2FF
  285.            338-33F and 3B0-3BF
  286.            378-37F and 3F0-3FF
  287.         All of these addresses show a readout of FF in initial state.
  288.         Once started, all of the addresses show     FB, whatever might
  289.         happen.
  290.  
  291. -------------------------------------------------------------------------------
  292. 0040-005F ----    PIT  (Programmable Interrupt Timer  8253, 8254)
  293.          XT & AT uses 40-43    PS/2 uses 40, 42,43,44, 47
  294.  
  295. 0040    r/w    PIT  counter 0, counter divisor          (XT, AT, PS/2)
  296. 0041    r/w    PIT  counter 1, RAM refresh counter   (XT, AT)
  297. 0042    r/w    PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  298.  
  299. 0043    r/w    PIT  mode port, control word register for counters 0-2
  300.          bit 7-6 = 00  counter 0 select
  301.              = 01  counter 1 select      (not PS/2)
  302.              = 10  counter 2 select
  303.          bit 5-4 = 00  counter latch command
  304.              = 01  read/write counter bits 0-7 only
  305.              = 10  read/write counter bits 8-15 only
  306.              = 11  read/write counter bits 0-7 first, then 8-15
  307.          bit 3-1 = 000 mode 0 select
  308.              = 001 mode 1 select - programmable one shot
  309.              = x10 mode 2 select - rate generator
  310.              = x11 mode 3 select - square wave generator
  311.              = 100 mode 4 select - software triggered strobe
  312.              = 101 mode 5 select - hardware triggered strobe
  313.          bit 0     = 0   binary counter 16 bits
  314.              = 1   BCD counter
  315.  
  316. 0044    r/w    PIT  counter 3 (PS/2, EISA)
  317.         used as fail-safe timer. generates an NMI on time out.
  318.         for user generated NMI see at 0462.
  319.  
  320. 0047    w    PIT  control word register counter 3 (PS/2, EISA)
  321.          bit 7-6 = 00  counter 3 select
  322.              = 01  reserved
  323.              = 10  reserved
  324.              = 11  reserved
  325.          bit 5-4 = 00  counter latch command counter 3
  326.              = 01  read/write counter bits 0-7 only
  327.              = 1x  reserved
  328.          bit 3-0 = 00
  329.  
  330. 0048        EISA
  331. 0049        8254 timer 2, not used (counter 1)
  332. 004A        EISA programmable interval timer 2
  333. 004B        EISA programmable interval timer 2
  334.  
  335. -------------------------------------------------------------------------------
  336. 0060-006F ----    Keyboard controller 804x (8041, 8042)  (or PPI (8255) on PC,XT)
  337.          XT uses 60-63,     AT uses 60-64
  338.  
  339.          AT keyboard controller input port bit definitions
  340.           bit 7      = 0  keyboard inhibited
  341.           bit 6      = 0  CGA, else MDA
  342.           bit 5      = 0  manufacturing jumper installed
  343.           bit 4      = 0  system RAM 512K, else 640K
  344.           bit 3-0      reserved
  345.  
  346.          AT keyboard controller input port bit definitions by Compaq
  347.           bit 7      = 0  security lock is locked
  348.           bit 6      = 0  Compaq dual-scan display, 1=non-Compaq display
  349.           bit 5      = 0  system board dip switch 5 is ON
  350.           bit 4      = 0  auto speed selected, 1=high speed selected
  351.           bit 3      = 0  slow (4MHz), 1 = fast (8MHz)
  352.           bit 2      = 0  80287 installed, 1= no NDP installed
  353.           bit 1-0      reserved
  354.  
  355.          AT keyboard controller output port bit definitions
  356.           bit 7 =    keyboard data output
  357.           bit 6 =    keyboard clock output
  358.           bit 5 = 0  input buffer full
  359.           bit 4 = 0  output buffer empty
  360.           bit 3 =    reserved (see note)
  361.           bit 2 =    reserved (see note)
  362.           bit 1 =    gate A20
  363.           bit 0 =    system reset
  364.         Note:    bits 2 and 3 are the turbo speed switch or password
  365.               lock on Award/AMI/Phoenix BIOSes.  These bits make
  366.               use of nonstandard keyboard controller BIOS
  367.               functionality to manipulate
  368.                 pin 23 (8041 port 22) as turbo switch for AWARD
  369.                 pin 35 (8041 port 15) as turbo switch/pw lock for
  370.                 Phoenix
  371.  
  372.          HP Vectra keyboard controller output port bit definitions
  373.           bits 7-5 reserved
  374.           bit 4 = output buffer full (OBF) interrupt
  375.           bit 3 = HP SVC interrupt
  376.           bit 2 = HP-HIL controller AutoPoll
  377.           bit 1 = A20 gate
  378.           bit 0 = system reset
  379.  
  380.          HP Vectra command byte bit definitions
  381.           bit 7    = reserved (0)
  382.           bit 6 = scancode conversion mode (1 = PC/XT, 0 = PC/AT)
  383.           bit 5 = unused
  384.           bit 4 = disable keyboard (unless bit 3 set)
  385.           bit 3 = override keyboard disable
  386.           bit 2 = System Flag (may be read from port 0060h)
  387.           bit 1 = reserved
  388.           bit 0 = OBF interrupt enable
  389.  
  390. 0060    r/w    KB controller data port or keyboard input buffer (ISA, EISA)
  391.         should only be read from after status port bit0 = 1
  392.         should only be written to if status port bit1 = 0
  393.         keyboard commands (data also goes to port 0060):
  394.          E6    sngl  set mouse scaling to 1:1
  395.          E7    sngl  set mouse scaling to 2:1
  396.          E8    dbl   set mouse resolution
  397.                 (00h = 1/mm,01h = 2/mm,02h = 4/mm,03h = 8/mm)
  398.          E9    sngl  get mouse information
  399.                 read two status bytes:
  400.                   byte 0
  401.                     bit 7 unused
  402.                     bit 6 remote rather than stream mode
  403.                     bit 5 mouse enabled
  404.                     bit 4 scaling set to 2:1
  405.                     bit 3 unused
  406.                     bit 2 left button pressed
  407.                     bit 1 unused
  408.                     bit 0 right button pressed
  409.                   byte 1: resolution
  410.          ED    dbl   set/reset mode indicators Caps Num Scrl
  411.                 bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  412.          EE    sngl  diagnostic echo. returns EE.
  413.          EF    sngl  NOP (No OPeration). reserved for future use
  414.          F0    dbl   get/set scan code set
  415.                 00h get current set
  416.                 01h scancode set 1 (except Type 2 ctrlr)
  417.                 02h scancode set 2 (default)
  418.                 03h scancode set 3
  419.          F2    sngl  read keyboard ID (read two ID bytes)
  420.          F2    sngl  read mouse ID (read two ID bytes)
  421.          F3    dbl   set typematic rate/delay
  422.                 data byte bits 4-0 are rate, 6-5 are delay, and
  423.                 bit 7 is unused
  424.          F3    dbl   set mouse sample rate in reports per second
  425.          F4    sngl  enable keyboard
  426.          F4    sngl  enable mouse
  427.          F5    sngl  disable keyboard. set default parameters
  428.          F5    sngl  disable mouse, set default parameters
  429.          F6    sngl  set default parameters
  430.          F7    sngl  [MCA] set all keys to typematic (scancode set 3)
  431.          F8    sngl  [MCA] set all keys to make/release
  432.          F9    sngl  [MCA] set all keys to make only
  433.          FA    sngl  [MCA] set all keys to typematic/make/release
  434.          FB    sngl  [MCA] set al keys to typematic
  435.          FC    dbl   [MCA] set specific key to make/release
  436.          FD    dbl   [MCA] set specific key to make only
  437.          FE    sngl  resend last scancode
  438.          FF    sngl  perform internal power-on reset function
  439.          FF    sngl  reset mouse
  440.         Note:    must issue command D4h to port 64h first to access
  441.               mouse functions
  442.  
  443.  
  444. 0060    r    KeyBoard or KB controller data output buffer (via PPI on XT)
  445.  
  446. 0061    w    KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  447.         system control port for compatibility with 8255
  448.          bit 7    (1= IRQ 0 reset )
  449.          bit 6-4    reserved
  450.          bit 3 = 1  channel check enable
  451.          bit 2 = 1  parity check enable
  452.          bit 1 = 1  speaker data enable
  453.          bit 0 = 1  timer 2 gate to speaker enable
  454.  
  455. 0061    r    KB controller port B control register (ISA, EISA)
  456.         system control port for compatibility with 8255
  457.          bit 7     parity check occurred
  458.          bit 6     channel check occurred
  459.          bit 5     mirrors timer 2 output condition
  460.          bit 4     toggles with each refresh request
  461.          bit 3     channel check status
  462.          bit 2     parity check status
  463.          bit 1     speaker data status
  464.          bit 0     timer 2 gate to speaker status
  465.  
  466. 0061    w    PPI  Programmable Peripheral Interface 8255 (XT only)
  467.         system control port
  468.          bit 7 = 1  clear keyboard
  469.          bit 6 = 0  hold keyboard clock low
  470.          bit 5 = 0  I/O check enable
  471.          bit 4 = 0  RAM parity check enable
  472.          bit 3 = 0  read low switches
  473.          bit 2        reserved, often used as turbo switch
  474.          bit 1 = 1  speaker data enable
  475.          bit 0 = 1  timer 2 gate to speaker enable
  476.  
  477. 0062    r/w    PPI (XT only)
  478.          bit 7 = 1  RAM parity check
  479.          bit 6 = 1  I/O channel check
  480.          bit 5 = 1  timer 2 channel out
  481.          bit 4        reserved 
  482.          bit 3 = 1  system board RAM size type 1
  483.          bit 2 = 1  system board RAM size type 2
  484.          bit 1 = 1  coprocessor installed
  485.          bit 0 = 1  loop in POST
  486.  
  487. 0063    r/w    PPI (XT only) command mode register  (read dipswitches)
  488.          bit 7-6 = 00  1 diskette drive
  489.              = 01  2 diskette drives
  490.              = 10  3 diskette drives
  491.              = 11  4 diskette drives
  492.          bit 5-4 = 00  reserved
  493.              = 01  40*25 color (mono mode)
  494.              = 10  80*25 color (mono mode)
  495.              = 11  MDA 80*25
  496.          bit 3-2 = 00  256K (using 256K chips)
  497.              = 01  512K (using 256K chips)
  498.              = 10  576K (using 256K chips)
  499.              = 11  640K (using 256K chips)
  500.          bit 3-2 = 00  64K  (using 64K chips)
  501.              = 01  128K (using 64K chips)
  502.              = 10  192K (using 64K chips)
  503.              = 11  256K (using 64K chips)
  504.          bit 1-0       reserved
  505.  
  506. 0064    r    KB controller read status (ISA, EISA)
  507.          bit 7 = 1 parity error on transmission from keyboard
  508.          bit 6 = 1 receive timeout
  509.          bit 5 = 1 transmit timeout
  510.          bit 4 = 0 keyboard inhibit
  511.          bit 3 = 1 data in input register is command
  512.              0 data in input register is data
  513.          bit 2     system flag status: 0=power up or reset  1=selftest OK
  514.          bit 1 = 1 input buffer full (input 60/64 has data for 8042)
  515.          bit 0 = 1 output buffer full (output 60 has data for system)
  516.  
  517. 0064    r    KB controller read status (MCA)
  518.          bit 7 = 1 parity error on transmission from keyboard
  519.          bit 6 = 1 general timeout
  520.          bit 5 = 1 mouse output buffer full
  521.          bit 4 = 0 keyboard inhibit
  522.          bit 3 = 1 data in input register is command
  523.              0 data in input register is data
  524.          bit 2     system flag status: 0=power up or reset  1=selftest OK
  525.          bit 1 = 1 input buffer full (input 60/64 has data for 804x)
  526.          bit 0 = 1 output buffer full (output 60 has data for system)
  527.  
  528. 0064    r    KB controller read status by Compaq
  529.          bit 7 = 1 parity error detected (11-bit format only). If an
  530.                error is detected, a Resend command is sent to the
  531.                keyboard once only, as an attempt to recover.
  532.          bit 6 = 1 receive timeout. transmission didn't finish in 2mS.
  533.          bit 5 = 1 transmission timeout error
  534.                 bit 5,6,7  cause
  535.                 1 0 0  No clock
  536.                 1 1 0  Clock OK, no response
  537.                 1 0 1  Clock OK, parity error
  538.          bit 4 = 0 security lock engaged
  539.          bit 3 = 1 data in OUTPUT register is command
  540.              0 data in OUTPUT register is data
  541.          bit 2     system flag status: 0=power up or reset  1=soft reset
  542.          bit 1 = 1 input buffer full (output 60/64 has data)
  543.          bit 0 = 0 no new data in buffer (input 60 has data)
  544.  
  545. 0064    w    KB controller input buffer (ISA, EISA)
  546.         KB controller commands (data goes to port 0060):
  547.          20    read  read byte zero of internal RAM, this is the
  548.                   last KB command send to 8041/8042
  549.               Compaq  Put current command byte on port 0060
  550.                 command structure:
  551.                 bit 7    reserved
  552.                 bit 6 = 1 convert KB codes to 8086 scan codes
  553.                 bit 5 = 0 use 11-bit codes, 1=use 8086 codes
  554.                 bit 4 = 0 enable keyboard, 1=disable keyboard
  555.                 bit 3 = 1 ignore security lock state
  556.                 bit 2      this bit goes into bit2 status reg.
  557.                 bit 1 = 0 reserved
  558.                 bit 0 = 1 generate int. when output buffer full
  559.          21-3F    read  reads the byte specified in the lower 5 bits of
  560.                   the command in the 804x's internal RAM
  561.          60-7F    dbl   writes the data byte to the address specified in
  562.                   the 5 lower bits of the command.
  563.  
  564.                   Alternate description KB IO command 60 summary:
  565.                    bit7 = 0 reserved
  566.                    bit6 =    IBM PC compatibility mode
  567.                    bit5 =    IBM PC mode
  568.                    bit4 =    disable kb
  569.                    bit3 =    inhibit override
  570.                    bit2 =    system flag
  571.                    bit1 = 0 reserved
  572.                    bit0 =    enableoutput buffer full interrupt
  573.  
  574.          60   Compaq  Load new command (60 to [64], command to [60])
  575.          A0    AMI    get ASCIZ copyright message on port 0060
  576.          A1    AMI    get controller version byte on port 0060
  577.          A1   Compaq  unknown speedfunction ??
  578.          A2   Compaq  unknown speedfunction ??
  579.          A2    AMI    set keyboard controller pins 22 and 23 low
  580.          A3   Compaq  Enable system speed control
  581.          A2    AMI    set keyboard controller pins 22 and 23 high
  582.          A4    MCA    check if password installed
  583.          A4   Compaq  Toggle speed
  584.          A4    AMI    set internal system speed flag to low
  585.          A5    MCA    load password
  586.          A5    AMI    set internal system speed flag to high
  587.          A5   Compaq  Special reed. the 8042 places the real values
  588.                   of port 2 except for bits 4 and 5 wich are given
  589.                   a new definition in the output buffer. No output
  590.                   buffer full is generated.
  591.                 if bit 5 = 0, a 9-bit keyboard is in use
  592.                 if bit 5 = 1, an 11-bit keyboard is in use
  593.                 if bit 4 = 0, outp-buff-full interrupt disabled
  594.                 if bit 4 = 1, output-buffer-full int. enabled
  595.          A6    MCA    check password
  596.          A6    AMI    get internal system speed flag on port 0060
  597.          A6   Compaq  unknown speedfunction ??
  598.          A7    MCA    disable mouse port
  599.          A7    AMI    set internal flag indicating bad write cache
  600.          A8    MCA    enable mouse port
  601.          A8    AMI    set internal flag indicating good write cache
  602.          A9    MCA    test mouse port
  603.          A9    AMI    get internal flag indicating cache OK to 0060
  604.          AA    sngl  initiate self-test. will return 55h to data port
  605.                 if self-test successful, FCh if failed
  606.               Compaq  Initializes ports 1 and 2, disables the keyboard
  607.                   and clears the buffer pointers. It then places
  608.                   55 in the output buffer.
  609.          AB    sngl  initiate interface test. result values:
  610.                    0 = no error
  611.                    1 = keyboard clock line stuck low
  612.                    2 = keyboard clock line stuck high
  613.                    3 = keyboard data line is stuck low
  614.                    4 = keyboard data line stuck high
  615.               Compaq   5 = Compaq diagnostic feature
  616.          AC    read  diagnostic dump. the contents of the 804x RAM,
  617.                   output port, input port, status word are sent.
  618.          AD    sngl  disable keyboard (sets bit 4 of commmand byte)
  619.          AE    sngl  enable keyboard  (resets bit 4 of commmand byte)
  620.          AF    AWARD  Enhanced Command: read keyboard version
  621.          B1    AMI    set keyboard controller P11 line low
  622.          B2    AMI    set keyboard controller P12 line low
  623.          B3    AMI    set keyboard controller P13 line low
  624.          B4    AMI    set keyboard controller P22 line low
  625.          B5    AMI    set keyboard controller P23 line low
  626.          B8    AMI    set keyboard controller P10 line high
  627.          B9    AMI    set keyboard controller P11 line high
  628.          BA    AMI    set keyboard controller P12 line high
  629.          BB    AMI    set keyboard controller P13 line high
  630.          BC    AMI    set keyboard controller P22 line high
  631.          BD    AMI    set keyboard controller P23 line high
  632.          C0    read  read input port
  633.               Compaq  Places status of input port in output buffer. use
  634.                   this command only when the output buffer is empty
  635.          C1    MCA    Enhanced Command: poll input port Low nibble
  636.          C2    MCA    Enhanced Command: poll input port High nibble
  637.          C8    AMI    unblock keyboard controller lines P22 and P23
  638.          C9    AMI    block keyboard controller lines P22 and P23
  639.          CA    AMI    read keyboard mode, return in 0060 bit 0
  640.                   (bit clear if ISA mode, set if PS/2 mode)
  641.          CB    AMI    set keyboard mode (write back mode byte returned
  642.                 by CA, modifying only bit 0)
  643.          D0    read  read output port
  644.               Compaq  Places byte in output port in output buffer. use
  645.                   this command only when the output buffer is empty
  646.          D1    dbl   write output port. next byte written  to 0060
  647.                   will be written to the 804x output port; the
  648.                   original IBM AT and many compatibles use bit 1 of
  649.                   the output port to control the A20 gate.
  650.               Compaq  The system speed bits are not set by this command
  651.                   use commands A1-A6 (!) for speed functions.
  652.          D2    MCA   Enhanced Command: write keyboard output buffer
  653.          D3    MCA   Enhanced Command: write pointing device out.buf.
  654.          D4    MCA   write to mouse
  655.          D4    AWARD Enhanced Command: write to auxiliary device
  656.          DD    sngl  disable address line A20 (HP Vectra only???)
  657.                   default in Real Mode
  658.          DF    sngl  enable address line A20 (HP Vectra only???)
  659.          E0    read  read test inputs.
  660.                 bit0 = kbd clock, bit1 = kbd data
  661.          Exxx    AWARD Enhanced Command: active output port
  662.          ED    Compaq This is a two part command to control the state
  663.                   of the NumLock CpasLock and ScrollLock LEDs
  664.                   The second byte contains the state to set LEDs.
  665.                 bit 7-3       reserved. should be set to 0.
  666.                 bit 2 = 0  Caps Lock LED off
  667.                 bit 1 = 0  Num Lock LED off
  668.                 bit 0 = 0  Scroll Lock LED off
  669.          F0-FF    sngl  pulse output port low for 6 microseconds.
  670.                   bits 0-3 contain the mask for the bits to be
  671.                   pulsed. a bit is pulsed if its mask bit is zero.
  672.                   bit0=system reset. Don't set to zero. Pulse only!
  673.  
  674. general note:     Keyboard controllers are widely different from each other.
  675.          You cannot generally exchange them between different machines.
  676. note on Award:     Derived from Award's Enhanced KB controller advertising sheet.
  677. note on Compaq:     Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  678.  
  679. 0065    r    communications port (Olivetti M24)
  680.  
  681. 0068    w    HP-Vectra  control buffer (HP commands)
  682.          00h-54h insert standard key make code into 8041 scancode buf
  683.          55h-77h insert HP key make code into 8041 scancode buffer
  684.          7Ah    pass through next data byte
  685.          7Bh    set RAM Switch to 0
  686.          7Ch    set RAM Switch to 1 (default)
  687.          7Dh    set CRT Switch to 0
  688.          7Eh    set CRT Switch to 1 (default)
  689.          7Fh    reserved
  690.          80h-D4h insert standard key break code into scancode buffer
  691.          D5h-F7h insert HP key break code into scancode buffer
  692.          F8h    enable AutoPoll
  693.          F9h    disable AutoPoll
  694.          FAh-FEh reserved
  695.          FFh    keyboard overrun
  696.  
  697. 0069    r    HP-Vectra  SVC (keyboard request SerViCe port)
  698. 006A    w    HP-Vectra  Acknowledge (clear processing, done)
  699.  
  700. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  701.  
  702. -------------------------------------------------------------------------------
  703. 0065      ----    AT&T 6300+ high/low chip select
  704.  
  705. -------------------------------------------------------------------------------
  706. 0065      ----    ???
  707.  
  708. 0065    r/w    ???
  709.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  710.  
  711. -------------------------------------------------------------------------------
  712. 0066-0067 ----    AT&T 6300+ system configuration switches
  713.  
  714. -------------------------------------------------------------------------------
  715. 0068      ----    C&T chipsets, turbo mode control
  716.  
  717. -------------------------------------------------------------------------------
  718. 006B-006F ----    SSGA control registers
  719.  
  720. 006B    ?    RAM enable/remap
  721. 006C-006F    undocumented
  722.  
  723. -------------------------------------------------------------------------------
  724. 0070-007F ----    CMOS RAM/RTC (Real Time Clock  MC146818)
  725.  
  726. 0070    w    CMOS RAM index register port (ISA, EISA)
  727.          bit 7     = 1  NMI disabled
  728.              = 0  NMI enabled
  729.          bit 6-0      CMOS RAM index (64 bytes, sometimes 128 bytes)
  730.  
  731.         any write to 0070 should be followed by an action to 0071
  732.         or the RTC wil be left in an unknown state.
  733.  
  734. 0071    r/w    CMOS RAM data port (ISA, EISA)
  735.         RTC registers:
  736.         00    current second in BCD
  737.         01    alarm second   in BCD
  738.         02    current minute in BCD
  739.         03    alarm minute   in BCD
  740.         04    current hour in BCD
  741.         05    alarm hour   in BCD
  742.         06    day of week  in BCD
  743.         07    day of month in BCD
  744.         08    month in BCD
  745.         09    year  in BCD (00-99)
  746.         0A    status register A
  747.                bit 7 = 1  update in progress
  748.                bit 6-4 divider that identifies the time-based
  749.                 frequency
  750.                bit 3-0 rate selection output  frequency and int. rate
  751.         0B    status register B
  752.                bit 7 = 0  run
  753.                  = 1  halt
  754.                bit 6 = 1  enable periodic interrupt
  755.                bit 5 = 1  enable alarm interrupt
  756.                bit 4 = 1  enable update-ended interrupt
  757.                bit 3 = 1  enable square wave interrupt
  758.                bit 2 = 1  calendar is in binary format
  759.                  = 0  calendar is in BCD format
  760.                bit 1 = 1  24-hour mode
  761.                  = 0  12-hour mode
  762.                bit 0 = 1  enable daylight savings time. only in USA.
  763.                   useless in Europe. Some DOS versions clear
  764.                   this bit when you use the DAT/TIME command.
  765.         0C    status register C
  766.                bit 7 =      interrupt request flag
  767.                bit 6 =      peridoc interrupt flag
  768.                bit 5 =      alarm interrupt flag
  769.                bit 4 =      update interrupt flag
  770.                bit 3-0      reserved
  771.         0D    status register D
  772.                bit 7 = 1  Real-Time Clock has power
  773.                bit 6-0      reserved
  774.         0E    diagnostics status byte
  775.                bit 7 = 0  RTC lost power
  776.                bit 6 = 1  CMOS RAM checksum bad
  777.                bit 5 = 1  invalid configuration information at POST
  778.                bit 4 = 1  memory size error at POST
  779.                bit 3 = 1  fixed disk/adapter failed initialization
  780.                bit 2 = 1  CMOS RAM time found invalid
  781.                bit 1 = 1  adapters do not match configuration (EISA)
  782.                bit 0 = 1  time out reading an adapter ID (EISA)
  783.         0F    shutdown status byte
  784.                00 = normal execution of POST
  785.                01 = chip set initialization for real mode reentry
  786.                04 = jump to bootstrap code
  787.                05 = issue an EOI an JMP to Dword ptr at 40:67
  788.                06 = JMP to Dword ptrv at 40:67 without EOI
  789.                07 = return to INT15/87 (block move)
  790.                08 = return to POST memory test
  791.                09 = return to INT15/87 (block move)
  792.                0A = JMP to Dword ptr at 40:67 without EOI
  793.                0B = return IRETS through 40:67
  794.         10    diskette drive type for A: and B:
  795.                bit 7-4    drive type of drive 0
  796.                bit 3-0    drive type of drive 1
  797.                    = 0000       no drive
  798.                    = 0001       360K
  799.                    = 0010       1M2
  800.                    = 0011       720K
  801.                    = 0100       1M44
  802.                    = 0101-1111 reserved
  803.         11    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  804.                bit 7   = 1     Typematic Rate Programming
  805.                bit 6-5 = 00    Typematic Rate Delay 250 mSec
  806.                bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec
  807.         12    fixed disk drive type for drive 0 and drive 1
  808.                bit 7-4    drive type of drive 0
  809.                bit 3-0    drive type of drive 1
  810.                 if either of the nibbles equals 0F, then bytes
  811.                 19 an 1A are valid
  812.         13    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  813.                bit 7 = 1  Mouse Support Option
  814.                bit 6 = 1  Above 1 MB Memory Test disable
  815.                bit 5 = 1  Memory Test Tick Sound disable
  816.                bit 4 = 1  Memory Parity Error Check enable
  817.                bit 3 = 1  Hit <ESC> Message Display disabled
  818.                bit 2 = 1  Hard Disk Type 47 Data Area at address 0:300
  819.                bit 1 = 1  Wait For <F1> If Any Error enabled
  820.                bit 0 = 1  System Boot Up Num Lock is On
  821.         14    equipment byte
  822.                bit 7-6     diskette drives installed
  823.                    = 00  1 drive installed
  824.                    = 01  2 drives installed
  825.                    = 10  reserved
  826.                    = 11  reserved
  827.                bit 5-4     primary display
  828.                    = 00  adapter card with option ROM 
  829.                    = 01  40*25 color
  830.                    = 10  80*25 color
  831.                    = 11  monochrome
  832.                bit 3-2     reserved
  833.                bit 1   = 1  coprocessor installed (non-Weitek)
  834.                bit 0        diskette drive avaliable for boot
  835.         15    LSB of systemn base memory in Kb
  836.         16    MSB of systemn base memory in Kb
  837.         17    LSB of total extended memory in Kb
  838.         18    MSB of total extended memory in Kb
  839.         19    drive C extension byte
  840.         1A    drive D extension byte
  841.         1B-27 reserved
  842.         1B/1C word to 82335 RC1 roll compare register at [24]
  843.             (Phoenix)
  844.         1D/1E word to 82335 RC2 roll compare register at [26]
  845.             (Phoenix)
  846.         28    HP-Vectra checksum over 29-2D
  847.         29-2D reserved
  848.         29/2A word to Intel 82335 CC0 compare register at
  849.             [28](Phoenix)
  850.         2B/2C word send to 82335 CC1 compare register at [2A]
  851.             (Phoenix)
  852.         2D    AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  853.               (Phoenix BIOS checks for the values AA or CC)
  854.                bit 7 = 1  Weitek Processor Absent
  855.                bit 6 = 1  Floppy Drive Seek At Boot disabled
  856.                bit 5 = 1  System Boot Up Sequence  C:, A:
  857.                bit 4 = 1  System Boot Up Speed is high
  858.                bit 3 = 1  Cache Memory enabled
  859.                bit 2 = 1  Internal Cache Memory     <1>
  860.                bit 1-0      reserved
  861.         2E    CMOS MSB checksum over 10-2D
  862.         2F    CMOS LSB checksum over 10-2D
  863.         30    LSB of extended memory found above 1Mb at POST
  864.         31    MSB of extended memory found above 1Mb at POST
  865.         32    date century in BCD
  866.         33    information flags
  867.                bit4 = bit4 from CPU register CR0   (Phoenix)
  868.                   this bit is only known as INTEL RESERVED
  869.         34-3F reserved    
  870.         34     bit4 bit5 (Phoenix BIOS)
  871.         3D/3E word to 82335 MCR memory config register at
  872.             [22](Phoenix)
  873.         3D     bit3     base memsize 512/640  (Phoenix)
  874.         3E     bit7 = 1     relocate enable       (Phoenix)
  875.                bit1 = 1     shadow video enable   (Phoenix)
  876.                bit0 = 1     shadow BIOS enable    (Phoenix)
  877.  
  878.  
  879.         User Definable Drive Parameters are also stored in CMOS RAM:
  880.  
  881.         AMI (386sx BIOS 1989) first user definable drive (type 47)
  882.          1B  L cylinders
  883.          1C  H cylinders
  884.          1D  heads
  885.          1E  L Write Precompensation Cylinder
  886.          1F  H Write Precompensation Cylinder
  887.          20  ??
  888.          21  L cylinders parking zone
  889.          22  H cylinders parking zone
  890.          23  sectors
  891.  
  892.         AMI (386sx BIOS 1989) second user definable drive (type 48)
  893.          24  L cylinders
  894.          25  H cylinders
  895.          26  heads
  896.          27  L Write Precompensation Cylinder
  897.          28  H Write Precompensation Cylinder
  898.          29  ??
  899.          2A  L cylinders parking zone
  900.          2B  H cylinders parking zone
  901.          2C  sectors
  902.  
  903.         Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)
  904.          20  L cylinders
  905.          21  H cylinders
  906.          22  heads
  907.          23  L Write Precompensation Cylinder
  908.          24  H Write Precompensation Cylinder
  909.          25  L cylinders parking zone
  910.          26  H cylinders parking zone
  911.          27  sectors
  912.  
  913.         Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)
  914.         (when PS/2-style password option is not used)
  915.          35  L cylinders
  916.          36  H cylinders
  917.          37  heads
  918.          38  L Write Precompensation Cylinder
  919.          39  H Write Precompensation Cylinder
  920.          3A  L cylinders parking zone
  921.          3B  H cylinders parking zone
  922.          3C  sectors
  923.  
  924. - - - - - - - - ---------------------------------------------------------------
  925. 0073      ----    Intel Pentium motherboard ("Neptune" chipset)
  926.  
  927. 0073    r/w    bit 7: ???
  928.  
  929. - - - - - - - - ---------------------------------------------------------------
  930. 0074-0076    secondary CMOS (Compaq), NVRAM (IBM) access
  931.  
  932. 0074    w    secondary CMOS RAM (IBM NVRAM) index, low byte
  933. 0075    w    secondary CMOS RAM (IBM NVRAM) index, high byte
  934. 0076    r/w    secondary CMOS RAM (IBM NVRAM) data byte
  935.  
  936.         Note:    NVRAM may be 2K, 8K, or 16K
  937.         See also CMOS.LST
  938.  
  939. - - - - - - - - ---------------------------------------------------------------
  940. 0078        HP-Vectra  Hard Reset: NMI enable/disable
  941.          bit 7 = 0  disable & clear hard reset from HP-HIL controller
  942.                = 1  enable hard reset from HP-HIL controller chip
  943.          bit 6-0    reserved
  944.  
  945. -------------------------------------------------------------------------------
  946. 0078-007F ----    PC radio by CoZet Info Systems
  947.         The I/O address range is dipswitch selectable from:
  948.            038-03F and 0B0-0BF
  949.            078-07F and 0F0-0FF
  950.            138-13F and 1B0-1BF
  951.            178-17F and 1F0-1FF
  952.            238-23F and 2B0-2BF
  953.            278-27F and 2F0-2FF
  954.            338-33F and 3B0-3BF
  955.            378-37F and 3F0-3FF
  956.         All of these addresses show a readout of FF in initial state.
  957.         Once started, all of the addresses show     FB, whatever might
  958.         happen.
  959.  
  960. -------------------------------------------------------------------------------
  961. 007C-007D ----    HP-Vectra  PIC 3   (Programmable Interrupt Controller 8259)
  962.         cascaded to first controller.
  963.         used for keyboard and input device interface.
  964. 007C    r/w    HP-Vectra  PIC 3  see at 0020  PIC 1
  965. 007D    r/w    HP-Vectra  PIC 3  see at 0021  PIC 1
  966.  
  967. -------------------------------------------------------------------------------
  968. 0080    w    Manufacturing Diagnostics port
  969.  
  970. -------------------------------------------------------------------------------
  971. 0080-008F ----    DMA page registers   (74612)
  972.  
  973. 0080    r/w    extra page register (temporary storage)
  974. 0081    r/w    DMA channel 2 address byte 2
  975. 0082    r/w    DMA channel 3 address byte 2
  976. 0083    r/w    DMA channel 1 address byte 2
  977. 0084    r/w    extra page register
  978. 0085    r/w    extra page register
  979. 0086    r/w    extra page register
  980. 0087    r/w    DMA channel 0 address byte 2
  981. 0088    r/w    extra page register
  982. 0089    r/w    DMA channel 6 address byte 2
  983. 0089    r/w    DMA channel 7 address byte 2
  984. 0089    r/w    DMA channel 5 address byte 2
  985. 008C    r/w    extra page register
  986. 008D    r/w    extra page register
  987. 008E    r/w    extra page register
  988. 008F    r/w    DMA refresh page register
  989.  
  990. -------------------------------------------------------------------------------
  991. 0084      ----    Compaq POST Diagnostic
  992.  
  993. -------------------------------------------------------------------------------
  994. 0084      ----    EISA Synchronize Bus Cycle
  995.  
  996. -------------------------------------------------------------------------------
  997. 0090-009F ----    PS/2 POS (Programmable Option Select)
  998.  
  999. 0090        Central arbitration control port
  1000. 0091    r    Card selection feedback
  1001.  
  1002. 0092    r/w    PS/2 system control port A  (port B is at 0061)
  1003.          bit 7-6   any bit set to 1 turns activity light on
  1004.          bit 5       reserved
  1005.          bit 4 = 1 watchdog timout occurred 
  1006.          bit 3 = 0 RTC/CMOS security lock (on password area) unlocked
  1007.                = 1 CMOS locked (done by POST)
  1008.          bit 2       reserved
  1009.          bit 1 = 1 indicates A20 active
  1010.          bit 0 = 0 system reset or write
  1011.              1 pulse alternate reset pin (alternate CPU reset)
  1012.  
  1013. 0094    w    system board enable/setup register
  1014.          bit 7 = 1  enable functions
  1015.                = 0  setup functions
  1016.          bit 5 = 1  enables VGA
  1017.                = 0  setup VGA
  1018.  
  1019. 0095        reserved
  1020.  
  1021. 0096    w    adapter enable /setup register
  1022.          bit 3 = 1  setup adapters
  1023.                = 0  enable registers
  1024.  
  1025. 0097        reserved
  1026.  
  1027. -------------------------------------------------------------------------------
  1028. 00A0-00AF ----    PIC 2    (Programmable Interrupt Controller 8259)
  1029.  
  1030. 00A0    r/w    NMI mask register (XT)
  1031.  
  1032. 00A0    r/w    PIC 2  same as 0020 for PIC 1
  1033. 00A1    r/w    PIC 2  same as 0021 for PIC 1 except for OCW1:
  1034.          bit 7 = 0  reserved
  1035.          bit 6 = 0  enable fixed disk interrupt
  1036.          bit 5 = 0  enable coprocessor exception interrupt
  1037.          bit 4 = 0  enable mouse interrupt
  1038.          bit 3 = 0  reserved
  1039.          bit 2 = 0  reserved
  1040.          bit 1 = 0  enable redirect cascade
  1041.          bit 0 = 0  enable real-time clock interrupt
  1042.  
  1043. -------------------------------------------------------------------------------
  1044. 00B0-00BF ----    PC radio by CoZet Info Systems
  1045.         The I/O address range is dipswitch selectable from:
  1046.            038-03F and 0B0-0BF
  1047.            078-07F and 0F0-0FF
  1048.            138-13F and 1B0-1BF
  1049.            178-17F and 1F0-1FF
  1050.            238-23F and 2B0-2BF
  1051.            278-27F and 2F0-2FF
  1052.            338-33F and 3B0-3BF
  1053.            378-37F and 3F0-3FF
  1054.         All of these addresses show a readout of FF in initial state.
  1055.         Once started, all of the addresses show     FB, whatever might
  1056.         happen.
  1057.  
  1058. -------------------------------------------------------------------------------
  1059. 00C0      ----    TI  SN746496 programmable tone/noise generator    PCjr
  1060.  
  1061. -------------------------------------------------------------------------------
  1062. 00C0-00DF ----    DMA 2    (second Direct Memory Access controller 8237)
  1063.  
  1064. 00C0    r/w    DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  1065. 00C2    r/w    DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1066. 00C4    r/w    DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  1067. 00C6    r/w    DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1068. 00C8    r/w    DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  1069. 00CA    r/w    DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1070. 00CC    r/w    DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  1071. 00CE    r/w    DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  1072.  
  1073. 00D0    r    DMA channel 4-7 status register (ISA, EISA)
  1074.          bit 7 = 1  channel 7 request
  1075.          bit 6 = 1  channel 6 request
  1076.          bit 5 = 1  channel 5 request
  1077.          bit 4 = 1  channel 4 request
  1078.          bit 3 = 1  terminal count on channel 7
  1079.          bit 2 = 1  terminal count on channel 6
  1080.          bit 1 = 1  terminal count on channel 5
  1081.          bit 0 = 1  terminal count on channel 4
  1082.  
  1083. 00D0    w    DMA channel 4-7 command register (ISA, EISA)
  1084.          bit 7 = 1  DACK sense active high
  1085.                = 0  DACK sense active low
  1086.          bit 6 = 1  DREQ sense active high
  1087.                = 0  DREQ sense active low
  1088.          bit 5 = 1  extended write selection
  1089.                = 0  late write selection
  1090.          bit 4 = 1  rotating priority
  1091.                = 0  fixed priority
  1092.          bit 3 = 1  compressed timing
  1093.                = 0  normal timing
  1094.          bit 2 = 0  enable controller
  1095.          bit 1 = 1  enable memory-to-memory transfer
  1096.          bit 0        .....
  1097.  
  1098. 00D2    w    DMA channel 4-7 write request register (ISA, EISA)
  1099.  
  1100. 00D4    w    DMA channel 4-7 write single mask register (ISA, EISA)
  1101.          bit 7-3      reserved
  1102.          bit 2     = 0  clear mask bit
  1103.              = 1  set mask bit
  1104.          bit 1-0 = 00 channel 4 select
  1105.              = 01 channel 5 select
  1106.              = 10 channel 6 select
  1107.              = 11 channel 7 select
  1108.  
  1109. 00D6    w    DMA channel 4-7 mode register (ISA, EISA)
  1110.          bit 7-6 = 00  demand mode
  1111.              = 01  single mode
  1112.              = 10  block mode
  1113.              = 11  cascade mode
  1114.          bit 5     = 0   address increment select
  1115.              = 1   address decrement select
  1116.          bit 4     = 0   autoinitialisation disable
  1117.              = 1   autoinitialisation enable
  1118.          bit 3-2 = 00  verify operation
  1119.              = 01  write to memory
  1120.              = 10  read from memory
  1121.              = 11  reserved
  1122.          bit 1-0 = 00  channel 4 select
  1123.              = 01  channel 5 select
  1124.              = 10  channel 6 select
  1125.              = 11  channel 7 select
  1126.  
  1127. 00D8    w    DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  1128. 00DA    r    DMA channel 4-7 read temporary register (ISA, EISA)
  1129. 00DA    w    DMA channel 4-7 master clear (ISA, EISA)
  1130. 00DC    w    DMA channel 4-7 clear mask register (ISA, EISA)
  1131. 00DE    w    DMA channel 4-7 write mask register (ISA, EISA)
  1132.  
  1133. -------------------------------------------------------------------------------
  1134. 00E0-00E7 ----    Microchannel
  1135.  
  1136. 00E0    r/w    split address register, memory encoding registers PS/2m80 only
  1137. 00E1    r/w    memory register
  1138. 00E3    r/w    error trace
  1139. 00E4    r/w    error trace
  1140. 00E5    r/w    error trace
  1141. 00E7    r/w    error trace
  1142.  
  1143. -------------------------------------------------------------------------------
  1144. 00EC-00ED ----  Compaq LTE Elite
  1145.  
  1146. -------------------------------------------------------------------------------
  1147. 00EF      ----  Hyunday Super-NB386S (AMD386sx with Intel chipset)
  1148.  
  1149.         Warning: any access to this port causes a cold reset on this
  1150.           machine!
  1151.  
  1152. -------------------------------------------------------------------------------
  1153. 00F0-00F5 ----    PCjr Disk Controller
  1154.  
  1155. 00F0        disk controller
  1156. 00F2        disk controller control port
  1157. 00F4        disk controller status register
  1158. 00F5        disk controller data port
  1159.  
  1160. -------------------------------------------------------------------------------
  1161. 00F0-00FF ----    coprocessor (8087..80387)
  1162.  
  1163. 00F0    w    math coprocessor clear busy latch
  1164. 00F1    w    math coprocessor reset
  1165. 00F8    r/w    opcode transfer
  1166. 00FA    r/w    opcode transfer
  1167. 00FC    r/w    opcode transfer
  1168.  
  1169. -------------------------------------------------------------------------------
  1170. 00F9      ----  Compaq LTE Elite
  1171.  
  1172. -------------------------------------------------------------------------------
  1173. 00FB      ----  Compaq LTE Elite
  1174.  
  1175. -------------------------------------------------------------------------------
  1176. 00F9-00FF ----    PC radio by CoZet Info Systems
  1177.         The I/O address range is dipswitch selectable from:
  1178.            038-03F and 0B0-0BF
  1179.            078-07F and 0F0-0FF
  1180.            138-13F and 1B0-1BF
  1181.            178-17F and 1F0-1FF
  1182.            238-23F and 2B0-2BF
  1183.            278-27F and 2F0-2FF
  1184.            338-33F and 3B0-3BF
  1185.            378-37F and 3F0-3FF
  1186.         All of these addresses show a readout of FF in initial state.
  1187.         Once started, all of the addresses show     FB, whatever might
  1188.         happen.
  1189.  
  1190. -------------------------------------------------------------------------------
  1191. 0100-010F ----    CompaQ Tape drive adapter. alternate address at 0300
  1192.  
  1193. -------------------------------------------------------------------------------
  1194. 0100-0107 ----    PS/2 POS (Programmable Option Select)
  1195.  
  1196. 0100    r    POS register 0    Low adapter ID byte
  1197. 0101    r    POS register 1    High adapter ID byte
  1198.  
  1199. 0102    r/w    POS register 2    option select data byte 1
  1200.          bit 0 is card enable (CDEN)
  1201.  
  1202. 0103    r/w    POS register 3    option select data byte 2
  1203. 0104    r/w    POS register 4    option select data byte 3
  1204. 0105    r/w    POS register 5    option select data byte 4
  1205.          bit 7    channel active (-CHCK)
  1206.          bit 6    channel status
  1207.  
  1208. 0106    r/w    POS register 6    Low subaddress extension
  1209. 0107    r/w    POS register 7    High subaddress extension
  1210.  
  1211. -------------------------------------------------------------------------------
  1212. 0108-010F ----    8 digit LED info panel on IBM PS/2
  1213.  
  1214. 010F    w    leftmost character on display
  1215. 010E    w    second character
  1216. ....    w
  1217. 0108    w    eighth character
  1218.  
  1219. -------------------------------------------------------------------------------
  1220. 0130-013F ----    CompaQ SCSI adapter. alternate address at 0330
  1221.  
  1222. -------------------------------------------------------------------------------
  1223. 0130-0133 ----    Adaptec 154xB/154xC SCSI adapter.
  1224.         alternate address at 0134, 0230, 0234, 0330 and 0334
  1225.  
  1226. -------------------------------------------------------------------------------
  1227. 0134-0137 ----    Adaptec 154xB/154xC SCSI adapter.
  1228.         alternate address at 0130, 0230, 0234, 0330 and 0334
  1229.  
  1230. -------------------------------------------------------------------------------
  1231. 0138-013F ----    PC radio by CoZet Info Systems
  1232.         The I/O address range is dipswitch selectable from:
  1233.            038-03F and 0B0-0BF
  1234.            078-07F and 0F0-0FF
  1235.            138-13F and 1B0-1BF
  1236.            178-17F and 1F0-1FF
  1237.            238-23F and 2B0-2BF
  1238.            278-27F and 2F0-2FF
  1239.            338-33F and 3B0-3BF
  1240.            378-37F and 3F0-3FF
  1241.         All of these addresses show a readout of FF in initial state.
  1242.         Once started, all of the addresses show     FB, whatever might
  1243.         happen.
  1244.  
  1245. -------------------------------------------------------------------------------
  1246. 0140-014F ----    SCSI (alternate Small Computer System Interface) adapter
  1247.         (1st at 0340-034F)
  1248.  
  1249. -------------------------------------------------------------------------------
  1250. 0140-0157 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1251.  
  1252. -------------------------------------------------------------------------------
  1253. 015F      ----    ARTEC Handyscanner A400Z.  alternate address at 35F.
  1254.  
  1255. -------------------------------------------------------------------------------
  1256. 0170-0177 ----    HDC 2    (2nd Fixed Disk Controller)   same as 01Fx (ISA, EISA)
  1257.  
  1258. -------------------------------------------------------------------------------
  1259. 0178-0179 ----    Power Management
  1260.  
  1261. 0178    w    index selection for data port
  1262. 0179    r/w    power management data
  1263.  
  1264. -------------------------------------------------------------------------------
  1265. 0178-017F ----    PC radio by CoZet Info Systems
  1266.         The I/O address range is dipswitch selectable from:
  1267.            038-03F and 0B0-0BF
  1268.            078-07F and 0F0-0FF
  1269.            138-13F and 1B0-1BF
  1270.            178-17F and 1F0-1FF
  1271.            238-23F and 2B0-2BF
  1272.            278-27F and 2F0-2FF
  1273.            338-33F and 3B0-3BF
  1274.            378-37F and 3F0-3FF
  1275.         All of these addresses show a readout of FF in initial state.
  1276.         Once started, all of the addresses show     FB, whatever might
  1277.         happen.
  1278.  
  1279. -------------------------------------------------------------------------------
  1280. 01E8-01EF ----    System Control. Laptop chipset: Headland HL21 & Acer M5105
  1281.  
  1282. 01ED    r/w    select internal register. Data to/from 01EF
  1283. 01EE    r
  1284. 01EF    r/w    register value
  1285.         05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  1286.              = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  1287.         10h memory size
  1288.            bits 2-0 = size
  1289.                (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  1290.         14h ???
  1291.            bit 2: 384K extended memory in 1024K system
  1292.  
  1293. -------------------------------------------------------------------------------
  1294. 01F0-01F7 ----    HDC 1    (1st Fixed Disk Controller)   same as 017x (ISA, EISA)
  1295.  
  1296. 01F0    r/w    data register
  1297.  
  1298. 01F1    r    error register
  1299.         diagnostic mode errors:
  1300.          bit 7     =    which drive failed (0 = master, 1 = slave)
  1301.          bit 6-3    reserved
  1302.          bit 2-0 = 001    no error detected
  1303.              = 010    formatter device error
  1304.              = 011    sector buffer error
  1305.              = 100    ECC circuitry error
  1306.              = 101    controlling microprocessor error
  1307.          operation mode:
  1308.           bit 7     = 1  bad block detected
  1309.              = 0  block OK
  1310.           bit 6     = 1  uncorrectable ECC error
  1311.              = 0  no error
  1312.           bit 5          reserved
  1313.           bit 4     = 1  ID found
  1314.              = 0  ID not found
  1315.           bit 3          reserved
  1316.           bit 2     = 1  command aborted
  1317.              = 0  command completed
  1318.           bit 1     = 1  track 000 not found
  1319.              = 0  track 000 found
  1320.           bit 0     = 1  DAM not found
  1321.              = 0  DAM found (CP-3022 always 0)
  1322.  
  1323. 01F1    w    WPC/4  (Write Precompensation Cylinder divided by 4)
  1324.  
  1325. 01F2    r/w    sector count
  1326. 01F3    r/w    sector number (CHS mode)
  1327.         logical block address, bits 0-7 (LBA mode)
  1328. 01F4    r/w    cylinder low (CHS mode)
  1329.         logical block address, bits 15-8 (LBA mode)
  1330. 01F5    r/w    cylinder high (CHS mode)
  1331.         logical block address, bits 23-16 (LBA mode)
  1332.  
  1333. 01F6    r/w    drive/head
  1334.          bit 7     = 1
  1335.          bit 6     = LBA mode enabled, rather than default CHS mode
  1336.          bit 5     = 1
  1337.          bit 4     = 0  drive 0 select
  1338.              = 1  drive 1 select
  1339.          bit 3-0 =    head select bits (CHS mode)
  1340.                   logical block address, bits 27-24 (LBA mode)
  1341.  
  1342. 01F7    r    status register
  1343.          bit 7 = 1  controller is executing a command
  1344.          bit 6 = 1  drive is ready
  1345.          bit 5 = 1  write fault
  1346.          bit 4 = 1  seek complete
  1347.          bit 3 = 1  sector buffer requires servicing
  1348.          bit 2 = 1  disk data read successfully corrected
  1349.          bit 1 = 1  index - set to 1 each disk revolution
  1350.          bit 0 = 1  previous command ended in an error
  1351.  
  1352. 01F7    w    command register
  1353.         commands:
  1354.          98 E5     check power mode    (IDE)
  1355.          90     execute drive diagnostics
  1356.          50     format track
  1357.          EC     identify drive        (IDE)
  1358.          97 E3     idle            (IDE)
  1359.          95 E1     idle immediate        (IDE)
  1360.          91     initialize drive parameters
  1361.          1x     recalibrate
  1362.          E4     read buffer        (IDE)
  1363.          C8     read DMA with retry    (IDE)
  1364.          C9     read DMA without retry (IDE)
  1365.          C4     read multiplec        (IDE)
  1366.          20     read sectors with retry
  1367.          21     read sectors without retry
  1368.          22     read long with retry
  1369.          23     read long without retry
  1370.          40     read verify sectors with retry
  1371.          41     read verify sectors without retry
  1372.          7x     seek
  1373.          EF     set features        (IDE)
  1374.          C6     set multiple mode    (IDE)
  1375.          99 E6     set sleep mode        (IDE)
  1376.          96 E2     standby        (IDE)
  1377.          94 E0     standby immediate    (IDE)
  1378.          E8     write buffer        (IDE)
  1379.          CA     write DMA with retry    (IDE)
  1380.          CB     write DMA with retry    (IDE)
  1381.          C5     write multiple        (IDE)
  1382.          E9     write same        (IDE)
  1383.          30     write sectors with retry
  1384.          31     write sectors without retry
  1385.          32     write long with retry
  1386.          33     write long without retry
  1387.          3C     write verify        (IDE)
  1388.          9A     vendor unique        (IDE)
  1389.          C0-C3     vendor unique        (IDE)
  1390.          8x     vendor unique        (IDE)
  1391.          F0-F4     EATA standard        (IDE)
  1392.          F5-FF     vendor unique        (IDE)
  1393.  
  1394. -------------------------------------------------------------------------------
  1395. 01F8      ----    ???
  1396.  
  1397. 01F8    r/w    ???
  1398.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  1399.  
  1400. -------------------------------------------------------------------------------
  1401. 01F9-01FF ----    PC radio by CoZet Info Systems
  1402.         The I/O address range is dipswitch selectable from:
  1403.            038-03F and 0B0-0BF
  1404.            078-07F and 0F0-0FF
  1405.            138-13F and 1B0-1BF
  1406.            178-17F and 1F0-1FF
  1407.            238-23F and 2B0-2BF
  1408.            278-27F and 2F0-2FF
  1409.            338-33F and 3B0-3BF
  1410.            378-37F and 3F0-3FF
  1411.         All of these addresses show a readout of FF in initial state.
  1412.         Once started, all of the addresses show     FB, whatever might
  1413.         happen.
  1414.  
  1415. -------------------------------------------------------------------------------
  1416. 0200-020F ----    Game port reserved I/O address space  
  1417. 0200-0207 ----    Game port, eight identical addresses on some boards
  1418.  
  1419. 0201    r    read joystick position and status
  1420.          bit 7    status B joystick button 2 / D paddle button
  1421.          bit 6    status B joystick button 1 / C paddle button
  1422.          bit 5    status A joystick button 2 / B paddle button
  1423.          bit 4    status A joystick button 1 / A paddle button
  1424.          bit 3    B joystick Y coordinate       / D paddle coordinate
  1425.          bit 2    B joystick X coordinate       / C paddle coordinate
  1426.          bit 1    A joystick Y coordinate       / B paddle coordinate
  1427.          bit 0    A joystick X coordinate       / A paddle coordinate
  1428.  
  1429.     w    fire joysticks four one-shots
  1430.  
  1431. -------------------------------------------------------------------------------
  1432. 0200-02FF ----    Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  1433.         (4 bit DIP switch installable in the range 20x-2Fx)
  1434. 0200-0203    adresses of the 8255 on the uPW48
  1435. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  1436.  
  1437.  
  1438. -------------------------------------------------------------------------------
  1439. 0208-0209 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1440.  
  1441.     configurable, may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  1442.  
  1443. -------------------------------------------------------------------------------
  1444. 020C-020F ----  AIMS LAB PC Radio
  1445.  
  1446.     configurable to 020C or 030C
  1447.  
  1448. -------------------------------------------------------------------------------
  1449. 0210-0217 ----    Expansion unit (XT)
  1450.  
  1451. 0210    w    latch expansion bus data
  1452.     r    verify expansion bus data
  1453. 0211    w    clear wait, test latch
  1454.     r    High byte data address
  1455. 0212    r    Low byte data address
  1456. 0213    w    0=enable,  1=disable expansion unit
  1457. 0214    w    latch data  (receiver card port)
  1458.     r    read data   (receiver card port)
  1459. 0215    r    High byte of address, then Low byte   (receiver card port)
  1460.  
  1461. -------------------------------------------------------------------------------
  1462. 0218-0219 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1463.  
  1464.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1465.       02B8, or 02E8
  1466.  
  1467. ------------------------------------------------------------------------------
  1468. 0220-0223 ---- Sound Blaster / Adlib port
  1469.  
  1470. 0220    r/w    Left speaker -- Status / Address port
  1471. 0221    w    Left speaker -- Data port
  1472. 0222    r/w    Right speaker -- Status / Address port
  1473.         Address:
  1474.             01 -- Enable waveform control
  1475.             02 -- Timer #1 data
  1476.             03 -- Timer #2 data
  1477.             04 -- Timer control flags
  1478.             08 -- Speech synthesis mode
  1479.          20-35 -- Amplitude Modulation / Vibrato
  1480.          40-55 -- Level key scaling / Total level
  1481.          60-75 -- Attack / Decay rate
  1482.          80-95 -- Sustain / Release rate
  1483.          A0-B8 -- Octave / Frequency Number
  1484.          C0-C8 -- Feedback / Algorithm
  1485.          E0-F5 -- Waveform Selection
  1486. 0223    w    Right speaker -- Data port
  1487.  
  1488. SeeAlso: 0388-0389
  1489.  
  1490. -------------------------------------------------------------------------------
  1491. 0220-0227 ----    Soundblaster PRO and SSB 16 ASP
  1492.  
  1493. -------------------------------------------------------------------------------
  1494. 0220-022F ----    Soundblaster PRO 2.0
  1495.  
  1496. -------------------------------------------------------------------------------
  1497. 0220-022F ----    Soundblaster PRO 4.0
  1498. 0220    r    left FM status port
  1499. 0220    w    left FM music register address port (index)
  1500. 0221    r/w    left FM music data port
  1501. 0222    r    right FM status port
  1502. 0222    w    right FM music register address port (index)
  1503. 0223    r/w    right FM music data port
  1504. 0224    w    mixer register address port (index)
  1505. 0225    r/w    mixer data port
  1506. 0226    w    DSP reset
  1507. 0228    r    FM music status port
  1508. 0228    w    FM music register address port (index)
  1509. 0229    w    FM music data port
  1510. 022A    r    DSP read data (voice I/O and Midi)
  1511. 022C    w    DSP write data / write command
  1512. 022C    r    DSP write buffer status (bit 7)
  1513. 022E    r    DSP data available status (bit 7)
  1514.  
  1515.         The FM music is accessible on 0388/0389 for compatibility.
  1516.  
  1517. -------------------------------------------------------------------------------
  1518. 0230-0233 ----    Adaptec 154xB/154xC SCSI adapter.
  1519.         alternate address at 0130, 0134, 0230, 0330 and 0334
  1520.  
  1521. -------------------------------------------------------------------------------
  1522. 0234-0237 ----    Adaptec 154xB/154xC SCSI adapter.
  1523.         alternate address at 0130, 0134, 0230, 0330 and 0334
  1524.  
  1525. -------------------------------------------------------------------------------
  1526. 0238-023x ----  Bus Mouse Port (secondary address)
  1527.  
  1528.         secondary address for bus mice from MS and Logitech, and the
  1529.           ATI video adapter mouse
  1530.  
  1531. -------------------------------------------------------------------------------
  1532. 023C-023x ----  Bus Mouse Port (primary address)
  1533.  
  1534.         primary address for bus mice from MS and Logitech, and the
  1535.           ATI video adapter mouse
  1536.  
  1537. -------------------------------------------------------------------------------
  1538. 0240-024F ----    Gravis Ultra Sound by Advanced Gravis
  1539.      The I/O address range is dipswitch selectable from:
  1540.        0200-020F and 0300-030F
  1541.        0210-021F and 0310-031F
  1542.        0220-022F and 0320-032F
  1543.        0230-023F and 0330-033F
  1544.        0240-024F and 0340-034F
  1545.        0250-025F and 0350-035F
  1546.        0260-026F and 0360-036F
  1547.        0270-027F and 0370-037F
  1548.  
  1549. 0240    w    Mix Control register
  1550.          bit 6       Control Register Select (see 024B)
  1551.          bit 5       Enable MIDI Loopback
  1552.          bit 4       Combine GF1 IRQ with MIDI IRQ
  1553.          bit 3       Enable Latches
  1554.          bit 2       Enable MIC IN
  1555.          bit 1       Disable LINE OUT
  1556.          bit 0       Disable LINE IN
  1557. 0241    r    Read Data
  1558.     w    Trigger Timer
  1559. 0246    r    IRQ Status Register
  1560.          bit 7       DMA TC IRQ
  1561.          bit 6       Volume Ramp IRQ
  1562.          bit 5       WaveTable IRQ
  1563.          bit 3       Timer 2 IRQ
  1564.          bit 2       Timer 1 IRQ
  1565.          bit 1       MIDI Receive IRQ
  1566.          bit 0       MIDI Transmit IRQ
  1567. 0248    r/w    Timer Control Reg
  1568.          Same a ADLIB Board (look at 0200)
  1569. 0249    w    Timer Data
  1570.          bit 7       Reset Timr IRQ
  1571.          bit 6       Mask Timer 1
  1572.          bit 5       Mask Timer 2
  1573.          bit 1       Timer 2 Start
  1574.          bit 0       Timer 1 Start
  1575. 024B    w    IRQ Control Register (0240 bit 6 = 1)
  1576.          bit 6       Combine Both IRQ
  1577.          bit 5-3   MIDI IRQ Selector
  1578.                = 000  No IRQ
  1579.                = 001  IRQ 2
  1580.                = 010  IRQ 5
  1581.                = 011  IRQ 3
  1582.                = 100  IRQ 7
  1583.                = 101  IRQ 11
  1584.                = 110  IRQ 12
  1585.                = 111  IRQ 15
  1586.          bit 2-0   GF1 IRQ Selector
  1587.                = 000  No IRQ
  1588.                = 001  IRQ 2
  1589.                = 010  IRQ 5
  1590.                = 011  IRQ 3
  1591.                = 100  IRQ 7
  1592.                = 101  IRQ 11
  1593.                = 110  IRQ 12
  1594.                = 111  IRQ 15
  1595.         DMA Control Register (0240 bit 6 = 0)
  1596.          bit 6       Combine Both IRQ
  1597.          bit 5-3   DMA Select Register 2
  1598.                = 000  No DMA
  1599.                = 001  DMA 1
  1600.                = 010  DMA 3
  1601.                = 011  DMA 5
  1602.                = 100  DMA 6
  1603.                = 101  DMA 7 
  1604.          bit 2-0   DMA Select Register 1
  1605.                = 000  No DMA
  1606.                = 001  DMA 1
  1607.                = 010  DMA 3
  1608.                = 011  DMA 5
  1609.                = 100  DMA 6
  1610.                = 101  DMA 7 
  1611. 024F    r/w    Register Controls (rev 3.4+)
  1612.  
  1613. SeeAlso: 0340-034F, 0746
  1614.    
  1615. -------------------------------------------------------------------------------
  1616. 0240-0257 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1617.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1618.  
  1619. -------------------------------------------------------------------------------
  1620. 0258-0259 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1621.  
  1622.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1623.       02B8, or 02E8
  1624.  
  1625. -------------------------------------------------------------------------------
  1626. 0258-025F ----    Intel Above Board
  1627.  
  1628. -------------------------------------------------------------------------------
  1629. 0268-0269 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1630.  
  1631.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1632.       02B8, or 02E8
  1633.  
  1634. -------------------------------------------------------------------------------
  1635. 0278-027E ----    parallel printer port, same as 0378 and 03BC
  1636.  
  1637. 0278    w    data port
  1638. 0279    r/w    status port
  1639. 027A    r/w    control port
  1640.  
  1641. -------------------------------------------------------------------------------
  1642. 02A0-02A7 ----    Sunshine EW-901BN, EW-904BN
  1643.         EPROM writer card (release 1986) for EPROMs up to 27512
  1644. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  1645.  
  1646.  
  1647. -------------------------------------------------------------------------------
  1648. 02A2-02A3 ----    MSM58321RS clock
  1649.  
  1650. -------------------------------------------------------------------------------
  1651. 02A8-02A9 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1652.  
  1653.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1654.       02B8, or 02E8
  1655.  
  1656. -------------------------------------------------------------------------------
  1657. 02B0-02BF ----    Trantor SCSI adapter
  1658.  
  1659. -------------------------------------------------------------------------------
  1660. 02B0-02DF ----    alternate EGA,    primary EGA at 03C0
  1661.  
  1662. -------------------------------------------------------------------------------
  1663. 02B8-02B9 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1664.  
  1665.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1666.       02B8, or 02E8
  1667.  
  1668. -------------------------------------------------------------------------------
  1669. 02C0-02Cx ----    AST-clock
  1670.  
  1671. -------------------------------------------------------------------------------
  1672. 02E0-02EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1673.         (GAB 0 on XT)
  1674. 02E1        GPIB (adapter 0)
  1675. 02E2
  1676. 02E3
  1677.  
  1678. -------------------------------------------------------------------------------
  1679. 02E0-02EF ----    data aquisition     (AT)
  1680.  
  1681. 02E2        data aquisition (adapter 0)
  1682. 02E3        data aquisition (adapter 0)
  1683.  
  1684. -------------------------------------------------------------------------------
  1685. 02E8      ----    S3 86C928 video controller (ELSA Winner 1000)
  1686.  
  1687. -------------------------------------------------------------------------------
  1688. 02E8-02E9 ----    Intel 82C212B "Neat" chipset - EMS emulation control
  1689.  
  1690.     base address configurable, may be set to 0208, 0218, 0258, 0268, 02A8,
  1691.       02B8, or 02E8
  1692.  
  1693. -------------------------------------------------------------------------------
  1694. 02E8-02EF ----    serial port, same as 02F8, 03E8 and 03F8
  1695.  
  1696. -------------------------------------------------------------------------------
  1697. 02E8-02EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  1698.  
  1699. 02E8    r    display status
  1700. 02E8    w    horizontal total
  1701. 02EA    w    DAC mask
  1702. 02EB    w    DAC read index
  1703. 02EC    w    DAC write index
  1704. 02ED    w    DAC data
  1705.  
  1706. -------------------------------------------------------------------------------
  1707. 02EA      ----    S3 86C928 video controller (ELSA Winner 1000)
  1708.  
  1709. -------------------------------------------------------------------------------
  1710. 02F8-02FF ----    serial port, same as 02E8, 03E8 and 03F8
  1711.  
  1712. 02F8    w    transmitter holding register
  1713. 02F8    r    receiver buffer register
  1714.     r/w    divisor latch, low byte      when DLAB=1
  1715. 02F9    r/w    divisor latch, high byte  when DLAB=1
  1716.     r/w    interrupt enable register when DLAB=0
  1717. 02FA    r    interrupt identification register
  1718. 02FB    r/w    line control register
  1719. 02FC    r/w    modem control register
  1720. 02FD    r    line status register
  1721. 02FF    r/w    scratch register
  1722.  
  1723. -------------------------------------------------------------------------------
  1724. 0300      ---- Award POST Diagnostic
  1725.  
  1726. -------------------------------------------------------------------------------
  1727. 0300-0301 ---- Soundblaster 16 ASP MPU-Midi
  1728.  
  1729. -------------------------------------------------------------------------------
  1730. 0300-0303 ----    Panasonic 52x CD-ROM SCSI Miniport
  1731.         Alternate addresses at 0320, 0340, 0360, and 0380
  1732.  
  1733. -------------------------------------------------------------------------------
  1734. 0300-030F ----    Philips CD-ROM player CM50
  1735.  
  1736. -------------------------------------------------------------------------------
  1737. 0300-030F ----    CompaQ Tape drive adapter. alternate address at 0100
  1738.  
  1739. -------------------------------------------------------------------------------
  1740. 0300-031F ----    prototype cards
  1741.         Periscope hardware debugger
  1742.  
  1743. -------------------------------------------------------------------------------
  1744. 030C-030F ----  AIMS LAB PC Radio
  1745.  
  1746.     configurable to 020C or 030C
  1747.  
  1748. -------------------------------------------------------------------------------
  1749. 0310-031F ----    Philips CD-ROM player CM50
  1750.  
  1751. -------------------------------------------------------------------------------
  1752. 0320-0323 ----    XT HDC 1   (Hard Disk Controller)
  1753.  
  1754. 0320    r/w    data register
  1755.  
  1756. 0321    w    reset controller
  1757.     r    read controller hardware status
  1758.          bit 7-6 = 0
  1759.          bit 5          logical unit number
  1760.          bit 4-2 = 0
  1761.          bit 1     = 0  no error
  1762.          bit 0     = 0 
  1763.  
  1764. 0322    r    read DIPswitch setting on XT controller card
  1765.     w    generate controller-select pulse
  1766. 0323    w    write pattern to DMA and INT mask register
  1767.  
  1768. 0324-0327 ----    XT HDC 2   (Hard Disk Controller)
  1769. 0328-032B ----    XT HDC 3   (Hard Disk Controller)
  1770. 032C-032F ----    XT HDC 4   (Hard Disk Controller)
  1771.  
  1772. -------------------------------------------------------------------------------
  1773. 0330-0331 ----    MIDI interface
  1774.  
  1775. -------------------------------------------------------------------------------
  1776. 0330-0333 ----    Adaptec 154xB/154xC SCSI adapter. default address.
  1777.         alternate address at 0130, 0134, 0230, 0234 and 0334
  1778.  
  1779. -------------------------------------------------------------------------------
  1780. 0330-033F ----    CompaQ SCSI adapter. alternate address at 0130
  1781.  
  1782. -------------------------------------------------------------------------------
  1783. 0330-033F ----    Philips CD-ROM player CM50
  1784.  
  1785. -------------------------------------------------------------------------------
  1786. 0334-0337 ----    Adaptec 154xB/154xC SCSI adapter.
  1787.         alternate address at 0130, 0134, 0230, 0234 and 0330
  1788.  
  1789. -------------------------------------------------------------------------------
  1790. 0338      ----    AdLib soundblaster card
  1791.  
  1792. -------------------------------------------------------------------------------
  1793. 0340-034F ----    Philips CD-ROM player CM50
  1794.  
  1795. -------------------------------------------------------------------------------
  1796. 0340-034F ----    SCSI (1st Small Computer System Interface) adapter
  1797.         (alternate at 0140-014F)
  1798.  
  1799. -------------------------------------------------------------------------------
  1800. 0340-034F ----    Gravis Ultra Sound by Advanced Gravis
  1801.      The I/O address range is dipswitch selectable from:
  1802.        0200-020F and 0300-030F
  1803.        0210-021F and 0310-031F
  1804.        0220-022F and 0320-032F
  1805.        0230-023F and 0330-033F
  1806.        0240-024F and 0340-034F
  1807.        0250-025F and 0350-035F
  1808.        0260-026F and 0360-036F
  1809.        0270-027F and 0370-037F
  1810.    
  1811. 0340    w    MIDI Control
  1812.          bit 7       Receive IRQ (1 = enabled)
  1813.          bit 5-6   Xmit IRQ
  1814.          bit 0-1   Master Reset (1 = enabled)
  1815.     r    MIDI Status
  1816.          bit 7       Interrupt pending
  1817.          bit 5       Overrun Error
  1818.          bit 4       Framing Error
  1819.          bit 1       Transmit Register Empty
  1820.          bit 0       Receive Register Empty
  1821. 0341    w    MIDI Transmit Data
  1822.     r    MIDI Receive Data
  1823. 0342    r/w    GF1 Page Register / Voice Select
  1824. 0343    r/w    GF1/Global Register Select
  1825.    
  1826.          Global Registers, NOT voice specific:
  1827.          41   r/w   DRAM DMA Control
  1828.                  bit 7     Invert MSB
  1829.                  bit 6     Data Size (8/16 bits)
  1830.                  bit 5     DMA Pending
  1831.                  bit 3-4     DMA Rate Divider
  1832.                  bit 2     DMA Channel Width (8/16 bits)
  1833.                  bit 1     DMA Direction (1 = read)
  1834.                  bit 0     DMA Enable
  1835.          42   w        DMA Start Address
  1836.                  bits 15-0     DMA Address Lines 19-4
  1837.          43   w        DRAM I/O Address LOW
  1838.          44   w        DRAM I/O Address HIGH
  1839.                  bits 0-3     Upper 4 Address Lines
  1840.          45   r/w   Timer Control
  1841.                  bit 3     Enable Timer 2
  1842.                  bit 2     Enable Timer 1
  1843.          46   w        Timer 1 Count (granularity of 80 micro sec)
  1844.          47   w        Timer 2 Count (granulatity of 320 micro sec)
  1845.          48   w        Sampling Frequency
  1846.                  rate = 9878400 / (16 * (FREQ + 2))
  1847.          49   r/w   Sampling Control
  1848.                  bit 7     Invert MSB
  1849.                  bit 6     DMA IRQ pending
  1850.                  bit 5     DMA IRQ enable
  1851.                  bit 2     DMA width (8/16 bits)
  1852.                  bit 1     Mode (mone/stereo)
  1853.                  bit 0     Start Sampling
  1854.          4B   w        Joystick Trim DAC
  1855.          4C   r/w   RESET
  1856.                  bit 2     GF1 Master IRQ Enable
  1857.                  bit 1     DAC Enable
  1858.                  bit 0     Master Reset
  1859.    
  1860.          Voice specific registers:
  1861.          00   w        Voice Control
  1862.                  bit 7     IRQ pending
  1863.                  bit 6     Direction
  1864.                  bit 5     Enable WAVE IRQ
  1865.                  bit 4     Enable bi-directional Looping
  1866.                  bit 3     Enable Looping
  1867.                  bit 2     Size data (8/16 bits)
  1868.                  bit 1     Stop Voice
  1869.                  bit 0     Voice Stopped
  1870.          01   w        Frequency Control
  1871.                  bit 15-10     Integer Portion
  1872.                  bit 9-1     Fractional Portion
  1873.          02   w        Start Address HIGH
  1874.                  bit 12-0     Address Lines 19-7
  1875.          03   w        Start Address LOW
  1876.                  bit 15-9     Address Lines 6-0
  1877.                  bit 8-5     Fractional Part of Start Address
  1878.          04   w        End Address HIGH
  1879.                  bit 12-0     Address Lines 19-7
  1880.          05   w        End Address LOW
  1881.                  bit 15-9     Address Lines 6-0
  1882.                  bit 8-5     Fractional Part of End Address
  1883.          06   w        Volume Ramp Rate
  1884.                  bit 5-0     Amount added
  1885.                  bit 7-6     Rate
  1886.          07   w        Volume Ramp Start
  1887.                  bit 7-4     Exponent
  1888.                  bit 3-0     Mantissa
  1889.          08   w        Volume Ramp End
  1890.                  bit 7-4     Exponent
  1891.                  bit 3-0     Mantissa
  1892.          09   w        Current Volume
  1893.                  bit 15-12     Exponent
  1894.                  bit 11-4     Mantissa
  1895.          0A   w        Current Address HIGH
  1896.                  bit 12-0     Address Lines 19-7
  1897.          0B   w        Current Address LOW
  1898.                  bit 15-9     Address Lines 6-0
  1899.                  bit 8-0     Fractional Position
  1900.          0C   w        Pan Position
  1901.                  bit 3-0     Pan Postion
  1902.          0D   w        Volume Control
  1903.                  bit 7     IRQ Pending
  1904.                  bit 6     Direction
  1905.                  bit 5     Enable Volume Ramp IRQ
  1906.                  bit 4     Enable bi-directional Looping
  1907.                  bit 3     Enable Looping
  1908.                  bit 2     Rollover Condition
  1909.                  bit 1     Stop Ramp
  1910.                  bit 0     Ramp Stopped
  1911.          0E   w        Active Voices
  1912.                  bit 5-0     #Voices -1  (allowed 13 - 31)
  1913.          0F   w        IRQ Source Register
  1914.                  bit 7     WaveTable IRQ pending
  1915.                  bit 6     Volume Ramp IRQ pending
  1916.                  bit 4-0     Voice Number
  1917.          80   r        Voice Control (see 00)
  1918.          81   r        Frequency Control (see 01)
  1919.          82   r        Start Address HIGH (see 02)
  1920.          83   r        Start Address LOW (see 03)
  1921.          84   r        End Address HIGH (see 04)
  1922.          85   r        End Address LOW (see 05)
  1923.          86   r        Volume Ramp Rate (see 06)
  1924.          87   r        Volume Ramp Start (see 07)
  1925.          88   r        Volume Ramp End (see 08)
  1926.          89   r        Current Volume (see 09)
  1927.          8A   r        Current Address HIGH (see 0A)
  1928.          8B   r        Current Address LOW (see 0B)
  1929.          8C   r        Pan Position (see 0C)
  1930.          8D   r        Volume Control (see 0D)
  1931.          8E   r        Active Voices (see 0E)
  1932.          8F   r        IRQ Status (see 0F)
  1933.            
  1934. 0344    r/w    GF1/Global Data Low Byte (16 bits)
  1935. 0345    r/w    GF1/Global Data High Byte (8 bits)
  1936. 0346    w    Mixer Data Port
  1937. 0347    r/w    GF1 DRAM
  1938.          Direct Read Write at Loction pointed with regs 43 and 44
  1939.  
  1940. SeeAlso: 0240-024F, 0746
  1941.    
  1942. -------------------------------------------------------------------------------
  1943. 0340-0357 ----    RTC (1st Real Time Clock for XT), (alternate at 0240-0257)
  1944.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1945.  
  1946. 0340    r/w    0.01 seconds  0-99
  1947. 0341    r/w    0.1 seconds   0-99
  1948. 0342    r/w    seconds          0-59
  1949. 0343    r/w    minutes          0-59
  1950. 0343    r/w    hours          0-23
  1951. 0345    r/w    day of week   1-7
  1952. 0346    r/w    day of month  1-31
  1953. 0347    r/w    month          1-12
  1954. 0348
  1955. 0349    r/w    year          0-99
  1956. 034A
  1957. 034B
  1958. 034C
  1959. 034D
  1960. 034E
  1961. 034F
  1962. 0350    r    status?
  1963. 0351    
  1964. 0352
  1965. 0353
  1966. 0354    r    status?
  1967. 0355
  1968. 0356
  1969. 0357
  1970.  
  1971. -------------------------------------------------------------------------------
  1972. 0348-0357 ----    DCA 3278
  1973.  
  1974. -------------------------------------------------------------------------------
  1975. 034C-034F ----    Gravis UltraMax by Advanced Gravis
  1976.      The I/O address range is dipswitch selectable from:
  1977.        0200-020F and 0300-030F
  1978.        0210-021F and 0310-031F
  1979.        0220-022F and 0320-032F
  1980.        0230-023F and 0330-033F
  1981.        0240-024F and 0340-034F
  1982.        0250-025F and 0350-035F
  1983.        0260-026F and 0360-036F
  1984.        0270-027F and 0370-037F
  1985.  
  1986. -------------------------------------------------------------------------------
  1987. 035A-035B ----  Adaptec AH1520 jumper settings
  1988.  
  1989. 035A    r    bit 7:      SCSI parity disabled
  1990.         bits 6-5: DMA channel
  1991.             (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  1992.         bits 4-3: IRQ number
  1993.             (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  1994.         bits 2-0: SCSI ID
  1995. 035B    r    bit 7: DMA transfer mode (clear for PIO)
  1996.         bit 6: boot enabled
  1997.         bits 5-4: boot type
  1998.             00 ???
  1999.             01 boot from floppy
  2000.             10 print configured options
  2001.             11 boot from hard disk
  2002.         bit 3: enable sync negotiation
  2003.         bit 2: enable target disconnection
  2004.         bits 1-0: unused???
  2005.  
  2006. -------------------------------------------------------------------------------
  2007. 035F      ----    ARTEC Handyscanner A400Z.  alternate address at 15F.
  2008.  
  2009. -------------------------------------------------------------------------------
  2010. 0360-036F ----    PC network (AT)
  2011. 0360-0367 ----    PC network (XT only)
  2012.  
  2013. -------------------------------------------------------------------------------
  2014. 0360-036F ----    National Semiconductor DP8390(1)C/NS3249C network chipset
  2015. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  2016.     of 16 consecutive addresses, and provide a total of four pages of
  2017.     sixteen register
  2018.  
  2019. Page 0    r                    w
  2020.  
  2021. 00    Command    reg.            CR    Command reg.        CR
  2022. 01    current local DMA address 0    CLDA0    page start reg.        PSTART
  2023. 02    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  2024. 03    boundary pointer        BNRY    boundary pointer    BNRY
  2025. 04    transmit status reg.        TSR    Tx page start address    TPSR
  2026. 05    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0 
  2027. 06    FIFO                    Tx byte count reg.1    TBCR1
  2028. 07    interrupt status reg.        ISR    interrupt status reg.    ISR
  2029. 08    current remote DMA address 0    CRDA0    remote start addr.reg.0    RSAR0
  2030. 09    current remote DMA address 1    CRDA1    remote start addr.reg.1    RSAR1
  2031. 0A    reserved                remote byte count reg.0    RBCR0
  2032. 0B    reserved                remote byte count reg.1    RBCR1
  2033. 0C    receive status reg.        RSR    Rx configuration reg.    RCR
  2034. 0D    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  2035. 0E    tally counter 1 (CRC errors)    CNTR1    data configuration reg.    DCR
  2036. 0F    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  2037.  
  2038. Page 1    r/w
  2039.  
  2040. 00    Command            CR
  2041. 01    physical address reg.0    PAR0
  2042. 02    physical address reg.1    PAR1        
  2043. 03    physical address reg.2    PAR2        
  2044. 04    physical address reg.3    PAR3        
  2045. 05    physical address reg.4    PAR4        
  2046. 06    physical address reg.5    PAR5        
  2047. 07    current page reg.    CURR            
  2048. 08    multicast address reg.0    MAR0        
  2049. 09    multicast address reg.1    MAR1        
  2050. 0A    multicast address reg.2    MAR2        
  2051. 0B    multicast address reg.3    MAR3        
  2052. 0C    multicast address reg.4    MAR4        
  2053. 0D    multicast address reg.5    MAR5        
  2054. 0E    multicast address reg.6    MAR6        
  2055. 0F    multicast address reg.7    MAR7        
  2056.  
  2057. Page 2    r                    w
  2058.     diagnostics page - should never be modfied under normal operation.
  2059.  
  2060. 00    Command                CR    Command             CR
  2061. 01    page start reg.            PSTART    current local DMA addr.0 CLDA0
  2062. 02    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  2063. 03    remote next packet pointer        remote next packet pointer
  2064. 04    Tx page start address        TPSR    reserved
  2065. 05    local next packet pointer        local next packet pointer
  2066. 06    address counter (upper)            address counter (upper)
  2067. 07    address counter (lower)            address counter (lower)
  2068. 08    reserved                reserved
  2069. 09    reserved                reserved
  2070. 0A    reserved                reserved
  2071. 0B    reserved                reserved
  2072. 0C    Rx configuration reg.        RCR    reserved
  2073. 0D    Tx configuration reg.        TCR    reserved
  2074. 0E    data configuration reg.        DCR    reserved
  2075. 0F    interrupt mask reg.        IMR    reserved
  2076.  
  2077. Page 3    r                    w
  2078.     Test Page - should never be modified !
  2079.  
  2080. 00    Command CR                Command CR
  2081.  
  2082.     bit0=1    software reset command. 1=offline  0=online
  2083.     bit1=0    activate NIC after reset command
  2084.     bit2=1    start transmision of a packet
  2085.     bit3-5    remote DMA command
  2086.          000 not allowed
  2087.          001 remote read
  2088.          010 remote write
  2089.          011 send packet
  2090.          1xx abort/complete rmote DMA
  2091.     bit 6,7 page select
  2092.          00 register page 0
  2093.          01 register page 1
  2094.          10 register page 2
  2095.          11 register page 3
  2096.  
  2097. -------------------------------------------------------------------------------
  2098. 0370-0377 ----    FDC 2  (2nd Floppy Disk Controller)    first FDC at 03F0
  2099.         (8272, 8272A, NEC765)
  2100.         (82072, 82077AA for perpendicular recording at 2.8Mb)
  2101.  
  2102. 0370    r    diskette Extra High Density controller board jumpers (AT)
  2103. 0370    r    diskette controller status A (PS/2, PS/2 model 30)
  2104. 0371    r    diskette controller status B (PS/2, PS/2 model 30)
  2105. 0372    w    diskette controller DOR (Digital Output Register)
  2106. 0374    r    diskette controller main status register
  2107. 0374    w    diskette controller datarate select register
  2108. 0375    r/w    diskette controller command/data register
  2109. 0376    r/w    (2nd FIXED disk controller data register)
  2110. 0377    r    diskette controller DIR (Digital Input Register)
  2111. 0377    w    select register for diskette data transfer rate
  2112.  
  2113. -------------------------------------------------------------------------------
  2114. 0378-037A ----    parallel printer port, same as 0278 and 03BC
  2115.  
  2116. 0378    w    data port
  2117. 0379    r/w    status port
  2118. 037A    r/w    control port
  2119.  
  2120. -------------------------------------------------------------------------------
  2121. 0380-038F ----    2nd Binary Synchronous Data Link Control adapter (see 03A0)
  2122.  
  2123. 0380    r/w     on board 8255 port A, internal/external sense
  2124. 0381    r/w     on board 8255 port B, external modem interface
  2125. 0382    r/w     on board 8255 port C, internal control and gating
  2126. 0383    r/w     on board 8255 mode register
  2127. 0384    r/w     on board 8253 channel square wave generator
  2128. 0385    r/w     on board 8253 channel 1 inactivity time-out
  2129. 0386    r/w     on board 8253 channel 2 inactivity time-out
  2130. 0387    r/w     on board 8253 mode register
  2131. 0388    r/w     on board 8273 read: status  write: command
  2132. 0389    r/w     on board 8273 read: response  write: parameter
  2133. 038A    r/w     on board 8273 transmit interrupt status
  2134. 038B    r/w     on board 8273 receiver interrupt status
  2135. 038C    r/w     on board 8273 data
  2136.  
  2137. ------------------------------------------------------------------------------
  2138. 0388-0389 ---- Sound Blaster / Adlib port
  2139.  
  2140. 0388    r/w    Both Speakers -- Status / Address port
  2141.         Address:
  2142.              01 -- Enable waveform control
  2143.              02 -- Timer #1 data
  2144.              03 -- Timer #2 data
  2145.              04 -- Timer control flags
  2146.              08 -- Speech synthesis mode
  2147.           20-35 -- Amplitude Modulation / Vibrato
  2148.           40-55 -- Level key scaling / Total level
  2149.           60-75 -- Attack / Decay rate
  2150.           80-95 -- Sustain / Release rate
  2151.           A0-B8 -- Octave / Frequency Number
  2152.           C0-C8 -- Feedback / Algorithm
  2153.           E0-F5 -- Waveform Selection
  2154. 0389    w    Data port
  2155.  
  2156. SeeAlso: 0220-0223
  2157.  
  2158. -------------------------------------------------------------------------------
  2159. 0388-0389 ---- Soundblaster PRO FM-Chip
  2160. 0388-038B ---- Soundblaster 16 ASP FM-Chip
  2161.  
  2162. -------------------------------------------------------------------------------
  2163. 0390-0397 ----    Sunshine EW-901B, EW-904B
  2164.         EPROM writer card for EPROMs up to 27512
  2165. 0390-0393    adresses of the 8255 on the EW-90xB
  2166.  
  2167. -------------------------------------------------------------------------------
  2168. 0390-039F ----    Cluster adapter (AT)
  2169.  
  2170. 0390-0393    (adapter 0)    (XT)
  2171.  
  2172. -------------------------------------------------------------------------------
  2173. 03A0-03AF ----    1st SDLC (Binary Synchronous Data Link Control adapter)
  2174.  
  2175. 03A0    r/w     on board 8255 port A, internal/external sense
  2176. 03A1    r/w     on board 8255 port B, external modem interface
  2177. 03A2    r/w     on board 8255 port C, internal control and gating
  2178. 03A3    r/w     on board 8255 mode register
  2179. 03A4    r/w     on board 8253 counter 0 unused
  2180. 03A5    r/w     on board 8253 channel 1 inactivity time-out
  2181. 03A6    r/w     on board 8253 channel 2 inactivity time-out
  2182. 03A7    r/w     on board 8253 mode register
  2183. 03A8    r/w     on board 8251 data
  2184. 03A9    r/w     on board 8251 command/mode/status register
  2185.  
  2186. -------------------------------------------------------------------------------
  2187. 03B0-03BF ----    MDA  (Monochrome Display Adapter based on 6845)
  2188.  
  2189. 03B0        same as 03B4
  2190. 03B1        same as 03B5
  2191. 03B2        same as 03B4
  2192. 03B3        same as 03B5
  2193. 03B4    w    MDA CRT index register     (EGA/VGA)
  2194.         selects which register (0-11h) is to be accessed through 3B5
  2195. 03B5    r/w    MDA CRT data register     (EGA/VGA)
  2196.         selected by port 3B4. registers C-F may be read
  2197.          00  horizontal total
  2198.          01  horizontal displayed
  2199.          02  horizontal sync position
  2200.          03  horizontal sync pulse width
  2201.          04  vertical total
  2202.          05  vertical displayed
  2203.          06  vertical sync position
  2204.          07  vertical sunc pulse width
  2205.          08  interlace mode
  2206.          09  maximum scan lines
  2207.          0A  cursor start
  2208.          0B  cursor end
  2209.          0C  start address high
  2210.          0D  start address low
  2211.          0E  cursor location high
  2212.          0F  cursor location low
  2213.          10  light pen high
  2214.          11  light pen low
  2215. 03B6        same as 03B4
  2216. 03B7        same as 03B5
  2217. 03B8    r/w    MDA mode control register
  2218.          bit 7 not used
  2219.          bit 6 not used
  2220.          bit 5 enable blink
  2221.          bit 4 not used
  2222.          bit 3 video enable
  2223.          bit 2 not used
  2224.          bit 1 not used
  2225.          bit 0 high resolution mode
  2226.  
  2227. 03B9        reserved for color select register on color adapter
  2228.  
  2229. 03BA    r    CRT status register     EGA/VGA: input status 1 register
  2230.          bit 7     (MSD says) if this bit changes within 8000h reads then
  2231.           bit 6-4 = 000 = adapter is Hercules or compatible
  2232.                 001 = adapter is Hercules+
  2233.                 101 = adapter is Hercules InColor
  2234.                   else: adapter is unknown
  2235.          bit 3     black/white video
  2236.          bit 2-1 reserved
  2237.          bit 0     horizontal drive
  2238.  
  2239. 03BA    w    EGA/VGA feature control register
  2240.  
  2241. 03BB        reserved for light pen strobe reset
  2242.  
  2243. -------------------------------------------------------------------------------
  2244. 03BC-03BF ----    parallel printer port, same as 0278 and 0378
  2245.  
  2246. 03BC    w    data port
  2247. 03BD    r/w    status port
  2248.          bit 7 = 0  busy
  2249.          bit 6 = 0  acknowledge
  2250.          bit 5 = 1  out of paper
  2251.          bit 4 = 1  printer is selected
  2252.          bit 3 = 0  error
  2253.          bit 2 = 0  IRQ has occurred
  2254.          bit 1-0    reserved
  2255.  
  2256. 03BE    r/w    control port
  2257.          bit 7-5    reserved
  2258.          bit 4 = 1  enable IRQ
  2259.          bit 3 = 1  select printer
  2260.          bit 2 = 0  initialize printer
  2261.          bit 1 = 1  automatic line feed
  2262.          bit 0 = 1  strobe
  2263.  
  2264. -------------------------------------------------------------------------------
  2265. 03BF    r/w    Hercules configuration switch register
  2266.          bit 7-2
  2267.          bit 1 = 0  disables upper 32K of graphics mode buffer
  2268.              1  enables upper 32K of graphics mode buffer
  2269.          bit 0 = 0  prevents graphics mode
  2270.              1  allows graphics mode
  2271.  
  2272. -------------------------------------------------------------------------------
  2273. 03C0-03C7 ----    Sunshine EW-901, EW-901A, EW-904, EW-904A
  2274.         EPROM writer card for EPROMs up to 27512
  2275. 03C0-03C3    adresses of the 8255 on the EW-90x
  2276.  
  2277. -------------------------------------------------------------------------------
  2278. 03C0-03CF ----    EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  2279.  
  2280. 03C0    (r)/w    EGA VGA ATC index/data register
  2281. 03C1    r    VGA    other attribute register
  2282. 03C2    r    EGA VGA input status 0 register
  2283.     w    VGA    miscellaneous output register
  2284. 03C3    r/w    VGA    video subsystem enable (see also port 46E8h)
  2285.             for IBM, motherboard VGA only
  2286. 03C4    w    EGA    TS index register
  2287.     r/w    VGA    sequencer index register
  2288. 03C5    w    EGA    TS data register
  2289.     r/w    VGA    other sequencer register
  2290. 03C6    r/w    VGA    PEL mask register
  2291. 03C7    r/w    VGA    PEL address read mode
  2292.     r    VGA    DAC state register
  2293. 03C8    r/w    VGA    PEL address write mode
  2294. 03C9    r/w    VGA    PEL data register
  2295. 03CA    w    EGA    graphics 2 position register
  2296.     r    VGA    feature control register
  2297. 03CC    w    EGA    graphics 1 position register
  2298.     r    VGA    miscellaneous output register
  2299. 03CE    w    EGA    GDC index register
  2300.     r/w    VGA    graphics address register
  2301. 03CF    w    EGA    GDC data register
  2302.     r/w    VGA    other graphics register
  2303.  
  2304. -------------------------------------------------------------------------------
  2305. 03CE-03CF ----    Compaq Qvision - Functionality Level
  2306.  
  2307. 03CE    w    graphics address register (index for next port)
  2308. 03CF    r/w    other graphics register
  2309.         Index
  2310.          0Ch    r    controller version
  2311.                 2Fh Advanced VGA
  2312.                 37h early QVision 1024
  2313.                 71h QVision 1280 or later QVision 1024
  2314.          0Dh        extended controller version
  2315.          0Eh        extended controller capabilities
  2316.          0Fh        environment info
  2317.          54h        available memory
  2318.          55h        phase-locked-loop clock
  2319.          56h-57h    controller capabilities
  2320.  
  2321. -------------------------------------------------------------------------------
  2322. 03D0-03DF ----    CGA   (Color Graphics Adapter)
  2323.  
  2324. 03D0        same as 03D4
  2325. 03D1        same as 03D5
  2326. 03D2        same as 03D4
  2327. 03D3        same as 03D5
  2328. 03D4    w    CRT (6845) index register   (EGA/VGA)
  2329.         selects which register (0-11h) is to be accessed through 3B5
  2330. 03D5    w    CRT (6845) data register    (EGA/VGA)
  2331.         selected by port 3B4. registers C-F may be read
  2332.          (for registers see at 3B5)
  2333. 03D6        same as 03D4
  2334.         (under OS/2, reads return 0 if full-screen DOS session,
  2335.         nonzero if windowed DOS session)
  2336. 03D7        same as 03D5
  2337. 03D8    r/w    CGA mode control register  (except PCjr)
  2338.          bit 7-6      not used
  2339.          bit 5     = 1  blink enabled
  2340.          bit 4     = 1  640*200 graphics mode
  2341.          bit 3     = 1  video enabled
  2342.          bit 2     = 1  monochrome signal
  2343.          bit 1     = 0  text mode
  2344.              = 1  320*200 graphics mode
  2345.          bit 0     = 0  40*25 text mode
  2346.              = 1  80*25 text mode
  2347.  
  2348. 03D9    r/w    CGA palette register
  2349.          bit 7-6      not used
  2350.          bit 5     = 0 active color set: red, green brown
  2351.              = 1 active color set: cyan, magenta, white
  2352.          bit 4         intense colors in graphics, background colors text
  2353.          bit 3         intense border in 40*25, intense background in
  2354.                  320*200, intense foreground in 640*200
  2355.          bit 2         red border in 40*25, red background in 320*200,
  2356.                  red foreground in 640*200
  2357.          bit 1         green border in 40*25, green background in
  2358.                  320*200, green foreground in 640*200
  2359.          bit 0         blue border in 40*25, blue background in 320*200,
  2360.                  blue foreground in 640*200
  2361.  
  2362. 03DA    r    CGA status register    EGA/VGA: input status 1 register
  2363.          bit 7-4     not used
  2364.          bit 3 = 1   in vertical retrace
  2365.          bit 2 = 1   light pen switch is off
  2366.          bit 1 = 1   positive edge from light pen has set trigger
  2367.          bit 0 = 0   do not use memory
  2368.                = 1   memory access without interfering with display
  2369.  
  2370. 03DA    w    EGA/VGA feature control register
  2371.  
  2372. 03DB    w    clear light pen latch
  2373. 03DC    r/w    preset light pen latch
  2374.  
  2375. 03DF        CRT/CPU page register  (PCjr only)
  2376.  
  2377. -------------------------------------------------------------------------------
  2378. 03E8-03EF ----    serial port, same as 02E8, 02F8 and 03F8
  2379.  
  2380. -------------------------------------------------------------------------------
  2381. 03F0-03F7 ----    FDC 1  (1st Floppy Disk Controller)    second FDC at 0370
  2382.         (8272, 8272A, NEC765)
  2383.         (82072, 82077AA for perpendicular recording at 2.8Mb)
  2384.  
  2385. 03F0    r    diskette EHD controller board jumper settings (82072AA)
  2386.          bit 7-6      drive 3
  2387.          bit 5-4      drive 2
  2388.          bit 3-2      drive 1
  2389.          bit 1-0      drive 0
  2390.              = 00  1.2Mb
  2391.              = 01  720Kb
  2392.              = 10  2.8Mb
  2393.              = 11  1.4Mb
  2394.  
  2395. 03F0    r    diskette controller status A (PS/2)
  2396.          bit 7     interrupt pending
  2397.          bit 6     -DRV2    second drive installed
  2398.          bit 5     step
  2399.          bit 4     -track 0
  2400.          bit 3     head 1 select
  2401.          bit 2     -index
  2402.          bit 1     -write protect
  2403.          bit 0     +direction
  2404.  
  2405. 03F0    r    diskette controller status A (PS/2 model 30)
  2406.          bit 7     interrupt pending
  2407.          bit 6     DRQ
  2408.          bit 5     step F/F
  2409.          bit 4     -track 0
  2410.          bit 3     head 1 select
  2411.          bit 2     +index
  2412.          bit 1     +write protect
  2413.          bit 0     -direction
  2414.  
  2415. 03F1    r    diskette controller status B (PS/2)
  2416.          bit 7-6  =1 reserved
  2417.          bit 5      drive select (0=A:, 1=B:)
  2418.          bit 4      write data
  2419.          bit 3      read data
  2420.          bit 2      write enable
  2421.          bit 1      motor enable 1
  2422.          bit 0      motor enable 0
  2423.  
  2424. 03F1    r    diskette controller status B (PS/2 model 30)
  2425.          bit 7      -DRV2    second drive installed
  2426.          bit 6      -DS1
  2427.          bit 5      -DS0
  2428.          bit 4      write data F/F
  2429.          bit 3      read data F/F
  2430.          bit 2      write enable F/F
  2431.          bit 1      -DS3
  2432.          bit 0      -DS2
  2433.  
  2434. 03F2    w    diskette controller DOR (Digital Output Register)
  2435.          bit 7-6    reserved on PS/2
  2436.          bit 7 = 1  drive 3 motor enable
  2437.          bit 6 = 1  drive 2 motor enable
  2438.          bit 5 = 1  drive 1 motor enable
  2439.          bit 4 = 1  drive 0 motor enable
  2440.          bit 3 = 1  diskette DMA enable (reserved PS/2)
  2441.          bit 2 = 1  FDC enable    (controller reset)
  2442.                = 0  hold FDC at reset
  2443.          bit 1-0    drive select (0=A 1=B ..)
  2444.  
  2445. 03F3        tape drive register (on the 82077AA)
  2446.          bit 7-2      reserved, tri-state
  2447.          bit 1-0      tape select
  2448.              = 00  none, drive 0 cannot be a tape drive.
  2449.              = 01  drive1
  2450.              = 10  drive2
  2451.              = 11  drive3
  2452.  
  2453. 03F4    r    diskette controller main status register
  2454.          bit 7 = 1  RQM     data register is ready
  2455.              0  no access is permitted
  2456.          bit 6 = 1  transfer is from controller to system
  2457.              0  transfer is from system to controller
  2458.          bit 5 = 1  non-DMA mode
  2459.          bit 4 = 1  diskette controller is busy
  2460.          bit 3 = 1  drive 3 busy (reserved on PS/2)
  2461.          bit 2 = 1  drive 2 busy (reserved on PS/2)
  2462.          bit 1 = 1  drive 1 busy (= drive is in seek mode)
  2463.          bit 0 = 1  drive 0 busy (= drive is in seek mode)
  2464.         Note:    in non-DMA mode, all data transfers occur through
  2465.               port 03F5h and the status registers (bit 5 here
  2466.               indicates data read/write rather than than
  2467.               command/status read/write)
  2468.  
  2469. 03F4    w    diskette controller data rate select register
  2470.          bit 7-2      reserved on 8272
  2471.          bit 7     = 1  software reset (self clearing)    82072/82077AA
  2472.          bit 6     = 1  power down            82072/82077AA
  2473.          bit 5     = 0  reserved on 8272 and 82077AA
  2474.                   PLL select bit on 82072
  2475.          bit 4-2      write precompensation value, 000 default
  2476.          bit 1-0      data rate select
  2477.              = 00  500 Kb/S MFM    250 Kb/S FM
  2478.              = 01  300 Kb/S MFM    150 Kb/S FM
  2479.              = 10  250 Kb/S MFM    125 Kb/S FM
  2480.              = 11  1Mb/S    MFM    illegal     FM on 8207x
  2481.  
  2482. 03F5    r    diskette command/data register 0 (ST0)
  2483.          bit 7-6      last command status
  2484.              = 00  command terminated successfully
  2485.              = 01  command terminated abnormally
  2486.              = 10  invalid command
  2487.              = 11  terminated abnormally by change in ready signal
  2488.          bit 5     = 1  seek completed
  2489.          bit 4     = 1  equipment check occurred after error
  2490.          bit 3     = 1  not ready
  2491.          bit 2     = 1  head number at interrupt
  2492.          bit 1-0 = 1  unit select (0=A 1=B .. )
  2493.                   (on PS/2    01=A  10=B)
  2494.  
  2495.         status register 1 (ST1)
  2496.          bit 7        end of cylinder; sector# greater then sectors/track
  2497.          bit 6 = 0
  2498.          bit 5 = 1  CRC error in ID or data field
  2499.          bit 4 = 1  overrun
  2500.          bit 3 = 0
  2501.          bit 2 = 1  sector ID not found
  2502.          bit 1 = 1  write protect detected during write
  2503.          bit 0 = 1  ID address mark not found
  2504.  
  2505.         status register 2 (ST2)
  2506.          bit 7 = 0
  2507.          bit 6 = 1  deleted Data Address Mark detected
  2508.          bit 5 = 1  CRC error in data
  2509.          bit 4 = 1  wrong cylinder detected
  2510.          bit 3 = 1  scan command equal condition satisfied
  2511.          bit 2 = 1  scan command failed, sector not found
  2512.          bit 1 = 1  bad cylinder, ID not found
  2513.          bit 0 = 1  missing Data Address Mark 
  2514.  
  2515.         status register 3 (ST3)
  2516.          bit 7        fault status signal
  2517.          bit 6        write protect status
  2518.          bit 5        ready status
  2519.          bit 4        track zero status
  2520.          bit 3        two sided status signal
  2521.          bit 2        side select (head select)
  2522.          bit 1-0    unit select (0=A 1=B .. )
  2523.  
  2524. 03F5    w    diskette command register.  The commands summarized here are
  2525.         mostly multibyte commands. This is for brief recognition only.
  2526.  
  2527.             MFM = MFM mode selected, opposite to MF mode.
  2528.             HDS = head select
  2529.             DS  = drive select
  2530.             MT  = multi track operation
  2531.             SK  = skip deleted data address mark
  2532.  
  2533.            Command         # bytes    D7  6    5   4    3   2    1   0
  2534.          read track        9    0  MFM    0   0    0   0    1   0
  2535.                         0   0    0   0    0 HDS DS1 DS0
  2536.          specify        3    0   0    0   O    O   O    1   1
  2537.          sense drive status    2    0   0    0   0    0   1    0   0
  2538.                         0   0    0   0    0 HDS DS1 DS0
  2539.          write data        9    MT MFM    0   0    0   1    0   1
  2540.                         0   0    0   0    0 HDS DS1 DS0
  2541.          read data        9    MT MFM SK   0    0   1    1   0
  2542.                         0   0    0   0    0 HDS DS1 DS0
  2543.          recalibrate        2    0   0    0   0    0   1    1   1
  2544.                         0   0    0   0    0   0 DS1 DS0
  2545.          sense interrupt status    1    0   0    0   0    1   0    0   0
  2546.          write deleted data    9    MT MFM    0   0    1   0    0   1
  2547.                         0   0    0   0    0 HDS DS1 DS0
  2548.          read ID        2    0  MFM    0   0    1   0    1   0
  2549.                         0   0    0   0    0 HDS DS1 DS0
  2550.          read deleted data    9    MT MFM SK   0    1   1    0   0
  2551.                         0   0    0   0    0 HDS DS1 DS0
  2552.          format track        10    0  MFM    0   0    1   1    0   1
  2553.                         0   0    0   0    0 HDS DS1 DS0
  2554.          dumpreg **        1    0   0    0   0    1   1    1   0
  2555.          seek            3    0   0    0   0    1   1    1   1
  2556.                         0   0    0   0    0 HDS DS1 DS0
  2557.          version **        1    0   0    0   1    0   0    0   0
  2558.          scan equal *        9    MT MFM SK   1    0   0    0   1
  2559.                         0   0    0   0    0 HDS DS1 DS0
  2560.          perpendicular mode **    2    0   0    0   1    0   0    1   0
  2561.                         0   0    0   0    0   0 WGATE GAP
  2562.          configure **        4    0   0    0   1    0   0    1   1
  2563.                         0   0    0   0    0   0    0   0
  2564.          verify            9    MT MFM SK   1    0   1    1   0
  2565.                         EC  0    0   0    0 HDS DS1 DS0
  2566.          scan low or equal *    9    MT MFM SK   1    1   0    0   1
  2567.                         0   0    0   0    0 HDS DS1 DS0
  2568.          scan high or equal *    9    MT MFM SK   1    1   1    0   1
  2569.                         0   0    0   0    0 HDS DS1 DS0
  2570.          relative seek **    3    1  DIR    0   0    1   1    1   1
  2571.                         0   0    0   0    0 HDS DS1 DS0
  2572.  
  2573.          BEWARE: not every invalid command is treated as invalid!
  2574.          *  Note: the scan commands aren't mentioned for the 82077AA.
  2575.          ** Note: EHD controller commands.
  2576.  
  2577. 03F6        reserved on FDC
  2578.  
  2579. 03F6    r/w    FIXED disk controller data register
  2580.          bit 7-4    reserved
  2581.          bit 3 = 0  reduce write current
  2582.              1  head select 3 enable
  2583.          bit 2 = 1  disk reset enable
  2584.              0  disk reset disable
  2585.          bit 1 = 0  disk initialization enable
  2586.              1  disk initialization disable
  2587.          bit 0        reserved
  2588.  
  2589. 03F7    r/w    harddisk controller
  2590.          bit 6       FIXED DISK write gate
  2591.          bit 5       FIXED DISK head select 3 / reduced write current
  2592.          bit 4       FIXED DISK head select 2
  2593.          bit 3       FIXED DISK head select 1
  2594.          bit 2       FIXED DISK head select 0
  2595.          bit 1       FIXED DISK drive 1 select
  2596.          bit 0       FIXED DISK drive 0 select
  2597.  
  2598. 03F7    r    diskette controller DIR (Digital Input Register, PC/AT mode)
  2599.          bit 7 = 1 diskette change
  2600.          bit 6-0   tri-state on FDC
  2601.  
  2602. 03F7    r    diskette controller DIR (Digital Input Register, PS/2 mode)
  2603.          bit 7     = 1 diskette change
  2604.          bit 6-3 = 1
  2605.          bit 2         datarate select1
  2606.          bit 1         datarate select0
  2607.          bit 0     = 0 high density select (500Kb/s, 1Mb/s)
  2608.  
  2609.  conflicts with     bit 0       FIXED DISK drive 0 select
  2610.  
  2611. 03F7    r    diskette controller DIR (Digital Input Register, PS/2 model 30)
  2612.          bit 7     = 0 diskette change
  2613.          bit 6-4 = 0
  2614.          bit 3         -DMA gate (value from DOR register)
  2615.          bit 2         NOPREC (value from CCR register)
  2616.          bit 1         datarate select1
  2617.          bit 0         datarate select0
  2618.  
  2619.  conflicts with     bit 0       FIXED DISK drive 0 select
  2620.  
  2621. 03F7    w    configuration control register (PC/AT, PS/2)
  2622.          bit 7-2       reserved, tri-state
  2623.          bit 1-0 = 00  500 Kb/S mode (MFM)
  2624.              = 01  300 Kb/S mode (MFM)
  2625.              = 10  250 Kb/S mode (MFM)
  2626.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  2627.  
  2628.  conflicts with     bit 0       FIXED DISK drive 0 select
  2629.  
  2630. 03F7    w    configuration control register (PS/2 model 30)
  2631.          bit 7-3       reserved, tri-state
  2632.          bit 2           NOPREC (has no function. set to 0 by hardreset)
  2633.          bit 1-0 = 00  500 Kb/S mode (MFM)
  2634.              = 01  300 Kb/S mode (MFM)
  2635.              = 10  250 Kb/S mode (MFM)
  2636.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  2637.  
  2638.  conflicts with     bit 0       FIXED DISK drive 0 select
  2639.  
  2640. -------------------------------------------------------------------------------
  2641. 03F8-03FF ----    serial port (8250,8251,16450,16550,16550A,etc.)
  2642.         same as 02E8,02F8 and 03E8
  2643.  
  2644. 03F8    w    serial port, transmitter holding register, which contains the
  2645.         character to be sent. Bit 0 is sent first.
  2646.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  2647.     r    receiver buffer register, which contains the received character
  2648.         Bit 0 is received first
  2649.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  2650.     r/w    divisor latch low byte when DLAB=1
  2651.  
  2652. 03F9    r/w    divisor latch high byte when DLAB=1
  2653.     r/w    interrupt enable register when DLAB=0
  2654.          bits 7-4   reserved
  2655.          bit 3 = 1  modem-status interrupt enable
  2656.          bit 2 = 1  receiver-line-status interrupt enable
  2657.          bit 1 = 1  transmitter-holding-register empty interrupt enable
  2658.          bit 0 = 1  received-data-available interrupt enable
  2659.                 (also 16550(A) timeout interrupt)
  2660.  
  2661.           - 16550(A) will interrupt with a timeout if data exists in the
  2662.             FIFO and isn't read within the time it takes to receive four
  2663.         bytes or if no data is received within the time it takes to
  2664.         receive four bytes
  2665.  
  2666. 03FA    r    interrupt identification register. Information about a pending
  2667.         interrupt is stored here. When the ID register is addressed,
  2668.         the highest priority interrupt is held, and no other interrupts
  2669.         are acknowledged until the CPU services that interrupt.
  2670.          bit 7-6 = 00  reserved on 8250, 8251, 16450
  2671.              = 01  if FIFO queues enabled but unusable (16550 only)
  2672.              = 11  if FIFO queues are enabled (16550A only)
  2673.          bit 5-4 = 0 reserved
  2674.          bit 3     = 0 reserved  8250, 16450
  2675.              = 1 16550  timeout int. pending
  2676.          bit 2-1 identify pending interrupt with the highest priority
  2677.           = 11    receiver line status interrupt. priority=highest
  2678.           = 10    received data available register interrupt. pr.=second
  2679.           = 01    transmitter holding register empty interrupt. pr.=third
  2680.           = 00    modem status interrupt. priority=fourth
  2681.          bit 0 = 0  interrupt pending. contents of register can be used
  2682.                 as a pointer to the appropriate int.service routine
  2683.              1  no interrupt pending
  2684.  
  2685.           - interrupt pending flag uses reverse logic, 0=pending, 1=none
  2686.           - interrupt will occur if any of the line status bits are set
  2687.           - THRE bit is set when THRE register is emptied into the TSR
  2688.  
  2689.  
  2690. 03FA    w    16650 FCR  (FIFO Control Register)
  2691.          bit 7-6 = received data available interrupt trigger level
  2692.             00  1 byte
  2693.             01  4 bytes
  2694.             10  8 bytes
  2695.             11 14 bytes
  2696.          bit 5-4 = 00 reserved
  2697.          bit 3     = 1  change RXRDY  TXRDY pins from mode 0 to mode 1
  2698.          bit 2     = 1  clear XMIT FIFO
  2699.          bit 1     = 1  clear RCVR FIFO
  2700.          bit 0     = 1  enable clear XMIT and RCVR FIFO queues
  2701.  
  2702.           - bit 0 must be set in order to write to other FCR bits
  2703.           - bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  2704.          the receiver shift register is not cleared
  2705.           - bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  2706.          the transmit shift register is not cleared
  2707.           - due to a hardware bug, 16550 FIFOs don't work correctly (this
  2708.             was fixed in the 16550A)
  2709.  
  2710. 03FB    r/w    line control register
  2711.          bit 7 = 1  divisor latch access bit (DLAB)
  2712.              0  receiver buffer, transmitter holding, or interrupt
  2713.                 enable register access
  2714.          bit 6 = 1  set break enable. serial ouput is forced to spacing
  2715.                 state and remains there.
  2716.          bit 5 =    stick parity
  2717.          bit 4 = 1  even parity select
  2718.          bit 3 =    parity enable
  2719.              1  even number of ones are sent and checked in the 
  2720.                 data word bits and parity bit
  2721.              0  odd number of ones are sent and checked
  2722.          bit 2 = 0  one stop bit
  2723.              1  zero stop bit
  2724.          bit 1-0 00 word length is 5 bits
  2725.              01 word length is 6 bits
  2726.              10 word length is 7 bits
  2727.              11 word length is 8 bits
  2728.  
  2729. 03FC    r/w    modem control register
  2730.          bit 7-5 = 0  reserved
  2731.          bit 4 = 1  loopback mode for diagnostic testing of serial port
  2732.                 output of transmitter shift register is looped back
  2733.                 to receiver shift register input. In this mode
  2734.                 transmitted data is received immediately so that
  2735.                 the CPU can verify the transmit data/receive data
  2736.                 serial port paths.
  2737.          bit 3 = 1  auxiliary user-designated output 2
  2738.          bit 2 = 1  auxiliary user-designated output 1
  2739.          bit 1 = 1  force request-to-send active
  2740.          bit 0 = 1  force data-terminal-ready active
  2741.  
  2742. 03FD    r    line status register
  2743.          bit 7 = 0  reserved
  2744.          bit 6 = 1  transmitter shift and holding registers empty
  2745.          bit 5 = 1  transmitter holding register empty. Controller is
  2746.                 ready toaccept a new character to send.
  2747.          bit 4 = 1  break interrupt. the received data input is held in
  2748.                 in the zero bit state longer than the time of start
  2749.                 bit + data bits + parity bit + stop bits.
  2750.          bit 3 = 1  framing error. the stop bit that follows the last
  2751.                 parity or data bit is a zero bit.
  2752.          bit 2 = 1  parity error. Character has wrong parity
  2753.          bit 1 = 1  overrun error. a character was sent to the receiver
  2754.                 buffer before the previous character in the buffer
  2755.                 could be read. This destroys the previous
  2756.                 character.
  2757.          bit 0 = 1  data ready. a complete incoming character has been
  2758.                 received and sent to the receiver buffer register.
  2759.  
  2760. 03FE    r    modem status register
  2761.          bit 7 = 1  data carrier detect
  2762.          bit 6 = 1  ring indicator
  2763.          bit 5 = 1  data set ready
  2764.          bit 4 = 1  clear to send
  2765.          bit 3 = 1  delta data carrier detect
  2766.          bit 2 = 1  trailing edge ring indicator
  2767.          bit 1 = 1  delta data set ready
  2768.          bit 0 = 1  delta clear to send
  2769.  
  2770.           - bits 0-3 are reset when the CPU reads the MSR
  2771.           - bit 4 is the Modem Control Register RTS during loopback test
  2772.           - bit 5 is the Modem Control Register DTR during loopback test
  2773.           - bit 6 is the Modem Control Register OUT1 during loopback test
  2774.           - bit 7 is the Modem Control Register OUT2 during loopback test
  2775.  
  2776. 03FF    r/w    scratch register
  2777.  
  2778. -------------------------------------------------------------------------------
  2779.  
  2780.         Adresses above 03FF apply to EISA machines only !
  2781.  
  2782.              1000-1FFF    slot 1 EISA
  2783.              2000-2FFF    slot 2 EISA
  2784.              3000-3FFF    slot 3 EISA
  2785.              4000-4FFF    slot 4 EISA
  2786.              5000-5FFF    slot 5 EISA
  2787.              6000-6FFF    slot 6 EISA
  2788.              7000-7FFF    slot 7 EISA
  2789.  
  2790. -------------------------------------------------------------------------------
  2791. 0401-04D6 ----    used by EISA systems only
  2792.  
  2793. 0401    r/w    DMA channel 0 word count byte 2 (high)
  2794. 0403    r/w    DMA channel 1 word count byte 2 (high)
  2795. 0405    r/w    DMA channel 2 word count byte 2 (high)
  2796. 0407    r/w    DMA channel 3 word count byte 2 (high)
  2797.  
  2798. 040A    w    extended DMA chaining mode register, channels 0-3
  2799.          bit 7-5      reserved
  2800.          bit 4     = 0  generates IRQ13
  2801.              = 1  generates terminal count
  2802.          bit 3     = 0  do not start chaining
  2803.              = 1  programming complete
  2804.          bit 2     = 0  disable buffer chaining mode (default)
  2805.              = 1  enable buffer chaining mode
  2806.          bit 1-0      DMA channel select
  2807.  
  2808. 040A    r    channel interrupt (IRQ13) status register
  2809.          bit 7-5  interrupt on channels 7-5
  2810.          bit 4      reserved
  2811.          bit 3-0  interrupt on channels 3-0
  2812.  
  2813. 040B    w    DMA extended mode register for channels 3-0.
  2814.         bit settings same as 04D6
  2815.          bit 7     = 0  enable stop register
  2816.          bit 6     = 0  terminal count is an output for this channel
  2817.                 (default)
  2818.          bit 5-4      DMA cycle timing
  2819.              = 00 ISA-compatible (default)
  2820.              = 01 type A timing mode
  2821.              = 10 type B timing mode
  2822.              = 11 burst DMA mode
  2823.          bit 3-2      Address mode
  2824.              = 00 8-bit I/O, count by bytes (default)
  2825.              = 01 16-bit I/O, count by words, address shifted
  2826.              = 10 32-bit I/O, count by bytes
  2827.              = 11 16-bit I/O, count by bytes
  2828.          bit 1-0      DMA channel select
  2829.  
  2830. -------------------------------------------------------------------------------
  2831. 0461    r/w    Extended NMI status/control register
  2832.          bit 7 = 1  NMI pending from fail-safe timer (read only)
  2833.          bit 6 = 1  NMI pending from bus timeout NMI status (read
  2834. only)
  2835.          bit 5 = 1  NMI pending (read only)
  2836.          bit 4        reserved
  2837.          bit 3 = 1  bus timeout NMI enable (read/write)
  2838.          bit 2 = 1  fail-safe NMI enable (read/write)
  2839.          bit 1 = 1  NMI I/O port enable (read/write)
  2840.          bit 0        RSTDRV. bus reset (read/write)
  2841.                = 0  NORMAL bus reset operation
  2842.                = 1  reset bus asserted
  2843.  
  2844. 0462    w    Software NMI register. writing to this register causes an NMI
  2845.         if NMI's are enabled
  2846.          bit 7 = 1  generates an NMI
  2847.  
  2848. 0464    r    bus master status latch register (slots 1-8). identifies the
  2849.         last bus master that had control of the bus
  2850.          bit 7 = 0  slot 8 had control last
  2851.          bit 6 = 0  slot 7 had control last
  2852.          bit 5 = 0  slot 6 had control last
  2853.          bit 4 = 0  slot 5 had control last
  2854.          bit 3 = 0  slot 4 had control last
  2855.          bit 2 = 0  slot 3 had control last
  2856.          bit 1 = 0  slot 2 had control last
  2857.          bit 0 = 0  slot 1 had control last
  2858.  
  2859. 0465    r    bus master status latch register (slots 9-16)
  2860.          bit 7 = 0  slot 16 had control last
  2861.          bit 6 = 0  slot 15 had control last
  2862.          bit 5 = 0  slot 14 had control last
  2863.          bit 4 = 0  slot 13 had control last
  2864.          bit 3 = 0  slot 12 had control last
  2865.          bit 2 = 0  slot 11 had control last
  2866.          bit 1 = 0  slot 10 had control last
  2867.          bit 0 = 0  slot 9  had control last
  2868.  
  2869. -------------------------------------------------------------------------------
  2870. 0481-048B ---- EISA DMA page registers
  2871.  
  2872. 0481    r/w    DMA channel 2 address byte 3 (high)
  2873. 0482    r/w    DMA channel 3 address byte 3 (high)
  2874. 0483    r/w    DMA channel 1 address byte 3 (high)
  2875. 0487    r/w    DMA channel 0 address byte 3 (high)
  2876. 0489    r/w    DMA channel 6 address byte 3 (high)
  2877. 048A    r/w    DMA channel 7 address byte 3 (high)
  2878. 048B    r/w    DMA channel 5 address byte 3 (high)
  2879.  
  2880. -------------------------------------------------------------------------------
  2881. 04C6-04CF ---- EISA DMA count registers
  2882.  
  2883. 04C6    r/w    DMA channel 5 word count byte 2 (high)
  2884. 04CA    r/w    DMA channel 6 word count byte 2 (high)
  2885. 04CE    r/w    DMA channel 7 word count byte 2 (high)
  2886.  
  2887. -------------------------------------------------------------------------------
  2888. 04D0-04D1 ---- EISA IRQ control
  2889.  
  2890. 04D0    w    IRQ 0-7 interrupt edge/level registers
  2891.          bit 7 = 1  IRQ 7 is level sensitive
  2892.          bit 6 = 1  IRQ 6 is level sensitive
  2893.          bit 5 = 1  IRQ 5 is level sensitive
  2894.          bit 4 = 1  IRQ 4 is level sensitive
  2895.          bit 3 = 1  IRQ 3 is level sensitive
  2896.          bit 2-0    reserved
  2897.  
  2898. 04D1    w    IRQ 8-15 interrupt edge/level registers
  2899.          bit 7 = 1  IRQ 15 is level sensitive
  2900.          bit 6 = 1  IRQ 14 is level sensitive
  2901.          bit 5 = 1  reserved
  2902.          bit 4 = 1  IRQ 12 is level sensitive
  2903.          bit 3 = 1  IRQ 11 is level sensitive
  2904.          bit 2 = 1  IRQ 10 is level sensitive
  2905.          bit 1 = 1  IRQ 9  is level sensitive
  2906.          bit 0        reserved
  2907.  
  2908. -------------------------------------------------------------------------------
  2909. 04D4-04D6 ---- EISA DMA control
  2910.  
  2911. 04D4    r    DMA chaining status
  2912.  
  2913. 04D4    w    extended DMA chaining mode register, channels 4-7
  2914.          bit 7-5 = 0  reserved
  2915.          bit 4     = 0  generates IRQ 13
  2916.              = 1  generates terminal count
  2917.          bit 3     = 0  do not start chaining
  2918.              = 1  programming complete
  2919.          bit 2     = 0  disable buffer chaining mode (default)
  2920.              = 1  enable buffer chaining mode
  2921.          bit 1-0      DMA channel select
  2922.  
  2923. 04D6    w    DMA extended mode register for channels 4-7
  2924.         bit settings same as 04B
  2925.          bit 7     = 0  enable stop register
  2926.          bit 6     = 0  terminal count is an output for this channel
  2927.                 (default)
  2928.          bit 5-4      DMA cycle timing
  2929.              = 00 ISA-compatible (default)
  2930.              = 01 type A timing mode
  2931.              = 10 type B timing mode
  2932.              = 11 burst DMA mode
  2933.          bit 3-2      Address mode
  2934.              = 00 8-bit I/O, count by bytes (default)
  2935.              = 01 16-bit I/O, count by words, address shifted
  2936.              = 10 32-bit I/O, count by bytes
  2937.              = 11 16-bit I/O, count by bytes
  2938.          bit 1-0      DMA channel select
  2939.  
  2940. -------------------------------------------------------------------------------
  2941. 04E0-04FF ---- EISA DMA stop registers
  2942.  
  2943. 04E0-04E2 r/w    channel 0
  2944. 04E4-04E6 r/w    channel 1
  2945. 04E8-04EA r/w    channel 2
  2946. 04EC-04EE r/w    channel 3
  2947. 04F4-04F6 r/w    channel 5
  2948. 04F8-04FA r/w    channel 6
  2949. 04FC-04FE r/w    channel 7
  2950.  
  2951. -------------------------------------------------------------------------------
  2952. 0530-0533 ----    Gravis Ultra Sound Daughter Card by Advanced Gravis
  2953.      The I/O address range is dipswitch selectable from:
  2954.        0530-0533 
  2955.        0604-0607 
  2956.        0E80-0E83 
  2957.        0F40-0F43 
  2958.  
  2959. 0530    r/w    Address Select
  2960. 0531    r/w    Data
  2961. 0532    r/w    Status
  2962. 0533    r/w    PIO
  2963.  
  2964. -------------------------------------------------------------------------------
  2965. 0601    w    System control. Laptop chipset: Headland HL21 & Acer M5105
  2966.          bit 7 = 1  power led on
  2967.          bit 6 = 1  LCD backlight off
  2968.          bit 5
  2969.          bit 4
  2970.          bit 3
  2971.          bit 2 = 1  video chips disabled, screen blanked.
  2972.          bit 1
  2973.          bit 0 = 1  will lock up your machine!
  2974.  
  2975.     r     bit 7 = 0  if screen enabled always these values
  2976.          bit 6 = 0
  2977.          bit 5 = 0
  2978.          bit 4 = 0
  2979.          bit 3 = 0
  2980.          bit 2 = 1  (=0 at low power)
  2981.          bit 1 = 0  power OK
  2982.          bit 0 = 0
  2983.  
  2984. -------------------------------------------------------------------------------
  2985. 0620-0627 ----    PC network (adapter 1)
  2986. 0628-062F ----    PC network (adapter 2)
  2987.  
  2988. -------------------------------------------------------------------------------
  2989. 0680      ----    Microchannel POST Diagnostic (write only)
  2990.  
  2991. -------------------------------------------------------------------------------
  2992. 06E2-06E3 ----    data aquisition (adapter 1)
  2993.  
  2994. -------------------------------------------------------------------------------
  2995. 06E8      ----    S3 86C928 video controller (ELSA Winner 1000)
  2996.  
  2997. -------------------------------------------------------------------------------
  2998. 06E8-06EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  2999.  
  3000. 06E8    w    horizontal displayed
  3001.  
  3002.     See also 02E8-02EF, 0AE8, 96E8, 9AE8
  3003.  
  3004. -------------------------------------------------------------------------------
  3005. 0746      ----    Gravis Ultra Sound by Advanced Gravis
  3006.  
  3007. 0746    r    Board Version (rev 3.7+)
  3008.          FF      Pre 3.6 boards, ICS mixer NOT present
  3009.          05      Rev 3.7 with ICS Mixer. Some R/L: flip problems.
  3010.          06-09      Revision 3.7 and above. ICS Mixer present
  3011.          0A-      UltraMax. CS4231 present, no ICS mixer
  3012.     w    Mixer Control Port
  3013.  
  3014. SeeAlso: 0240-024F, 0340-034F
  3015.  
  3016. -------------------------------------------------------------------------------
  3017. 0790-0793 ----    cluster (adapter 1)
  3018.  
  3019. -------------------------------------------------------------------------------
  3020. 0800-08FF ----    I/O port access registers for extended CMOS RAM or SRAM
  3021.         (256 bytes at a time)
  3022.         Sometimes plain text can be seen here.
  3023.  
  3024. -------------------------------------------------------------------------------
  3025. 0800-08FF ----    reserved for EISA system motherboard
  3026.  
  3027. -------------------------------------------------------------------------------
  3028. 0A20-0A23 ----    Token Ring (adapter 1)
  3029. 0A24-0A27 ----    Token Ring (adapter 2)
  3030.  
  3031. -------------------------------------------------------------------------------
  3032. 0AE2-0AE3 ----    cluster (adapter 2)
  3033.  
  3034. -------------------------------------------------------------------------------
  3035. 0AE8      ----    S3 86C928 video controller (ELSA Winner 1000)
  3036.  
  3037. -------------------------------------------------------------------------------
  3038. 0AE8-0AEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3039.  
  3040. 0AE8    w    horizontal sync start
  3041.  
  3042. -------------------------------------------------------------------------------
  3043. 0B90-0B93 ----    cluster (adapter 2)
  3044.  
  3045. -------------------------------------------------------------------------------
  3046. 0C00    r/w    page register to write to SRAM or I/O
  3047.  
  3048. -------------------------------------------------------------------------------
  3049. 0C00-0CFF ----    reserved for EISA system motherboard
  3050.  
  3051. -------------------------------------------------------------------------------
  3052. 0C7C        bit 7-4 (Compaq)
  3053.  
  3054. -------------------------------------------------------------------------------
  3055. 0C80-0C83 ----    EISA system board ID registers
  3056.  
  3057. -------------------------------------------------------------------------------
  3058. 0CF8      ----    Intel Pentium motherboard ("Neptune" chipset)
  3059.  
  3060. -------------------------------------------------------------------------------
  3061. 0CFA      ----    Intel Pentium motherboard ("Neptune" chipset)
  3062.  
  3063. -------------------------------------------------------------------------------
  3064. 0EE8      ----    S3 86C928 video controller (ELSA Winner 1000)
  3065.  
  3066. -------------------------------------------------------------------------------
  3067. 0EE8-0EEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3068.  
  3069. 0EE8    w    horizontal sync width
  3070.  
  3071. -------------------------------------------------------------------------------
  3072. 1000-10FF ----    available for EISA slot 1
  3073.  
  3074. -------------------------------------------------------------------------------
  3075. 12E8-12EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3076.  
  3077. 12E8    w    vertical total
  3078.  
  3079. -------------------------------------------------------------------------------
  3080. 1390-1393 ----    cluster (adapter 3)
  3081.  
  3082. -------------------------------------------------------------------------------
  3083. 1400-14FF ----    available for EISA slot 1
  3084.  
  3085. -------------------------------------------------------------------------------
  3086. 16E8-16EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3087.  
  3088. 16E8    w    vertical displayed
  3089.  
  3090. -------------------------------------------------------------------------------
  3091. 1800-18FF ----    available for EISA slot 1
  3092.  
  3093. -------------------------------------------------------------------------------
  3094. 1AE8-1AEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3095.  
  3096. 1AE8    w    vertical sync start
  3097.  
  3098. -------------------------------------------------------------------------------
  3099. 1C00-1CFF ----    available for EISA slot 1
  3100.  
  3101. -------------------------------------------------------------------------------
  3102. 1C65      ----    Compaq Contura Aero
  3103.  
  3104. 1C65    r/???    bit 6: operating on battery power
  3105.  
  3106.         See also: 2065
  3107.  
  3108. -------------------------------------------------------------------------------
  3109. 1C80-1C8F ----    VESA XGA Video in EISA slot 1
  3110.  
  3111. 1C80-1C83 r/w    EISA Video ID
  3112. 1C84    r/w    EISA Video expansion board control    
  3113. 1C85    r/w    EISA Setup control
  3114. 1C88    r/w    EISA Video Programmable Option Select 0
  3115. 1C89-1C8F r/w    EISA Video Programmable Option Select 1-7
  3116.  
  3117. -------------------------------------------------------------------------------
  3118. 1C80-1C83    EISA board product ID (board in slot 1)
  3119.  
  3120. -------------------------------------------------------------------------------
  3121. 1C85        Compaq Qvision EISA - Virtual Controller ID
  3122.  
  3123. -------------------------------------------------------------------------------
  3124. 1EE8-1EEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3125.  
  3126. 1EE8    w    vertical sync width
  3127.  
  3128. -------------------------------------------------------------------------------
  3129. 2000-20FF ----    available for EISA slot 2
  3130.  
  3131. -------------------------------------------------------------------------------
  3132. 2065      ----    Compaq Contura Aero
  3133.  
  3134. 2065    w    ??? (84h seen)
  3135.  
  3136.         See also: 1C65, 2465
  3137.  
  3138. -------------------------------------------------------------------------------
  3139. 2100-210F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (first installed)
  3140. 2110-211F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  3141. 2120-212F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  3142. 2130-213F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  3143. 2140-214F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  3144. 2150-215F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  3145. 2160-216F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (seventh installed)
  3146. 2170-217F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (eighth installed)
  3147.  
  3148. -------------------------------------------------------------------------------
  3149. 2100      ----    XGA Video Operating Mode Register
  3150.  
  3151. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  3152.       the second through eighth XGAs
  3153.  
  3154. -------------------------------------------------------------------------------
  3155. 2101      ----    XGA VIdeo Aperture Control
  3156.  
  3157. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  3158.       the second through eighth XGAs
  3159.  
  3160. -------------------------------------------------------------------------------
  3161. 2102-2103 ----    XGA ???
  3162.  
  3163. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3164.       the second through eighth XGAs
  3165.  
  3166. -------------------------------------------------------------------------------
  3167. 2104      ----    XGA Video Interrupt Enable
  3168.  
  3169. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3170.       the second through eighth XGAs
  3171.  
  3172. -------------------------------------------------------------------------------
  3173. 2105      ----    XGA Video Interrupt Status
  3174.  
  3175. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3176.       the second through eighth XGAs
  3177.  
  3178. -------------------------------------------------------------------------------
  3179. 2106      ----    XGA Video Virtual Memory Control
  3180.  
  3181. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3182.       the second through eighth XGAs
  3183.  
  3184. -------------------------------------------------------------------------------
  3185. 2107      ----    XGA Video Virtual Memory Interrupt Status
  3186.  
  3187. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3188.       the second through eighth XGAs
  3189.  
  3190. -------------------------------------------------------------------------------
  3191. 2108      ----    XGA Video Aperture Index
  3192.  
  3193. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3194.       the second through eighth XGAs
  3195.  
  3196. -------------------------------------------------------------------------------
  3197. 2109      ----    XGA Video Memory Access Mode
  3198.  
  3199. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3200.       the second through eighth XGAs
  3201.  
  3202. -------------------------------------------------------------------------------
  3203. 210A      ----    XGA Video Index for Data
  3204.  
  3205. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3206.       the second through eighth XGAs
  3207.  
  3208. -------------------------------------------------------------------------------
  3209. 210B      ----    XGA Video Data (byte)
  3210.  
  3211. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3212.       the second through eighth XGAs
  3213.  
  3214. -------------------------------------------------------------------------------
  3215. 210C-210F ----    XGA Video Data (word/dword)
  3216.  
  3217. Note:    this port is for the first XGA in the system; 211x-217x are used for
  3218.       the second through eighth XGAs
  3219.  
  3220. -------------------------------------------------------------------------------
  3221. 2110-217F ----    secondary XGA adapters (see individual entries above)
  3222.  
  3223. -------------------------------------------------------------------------------
  3224. 22E8-22EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3225.  
  3226. 22E8    w    display control
  3227.  
  3228. -------------------------------------------------------------------------------
  3229. 2390-2393 ----    cluster (adapter 4)
  3230.  
  3231. -------------------------------------------------------------------------------
  3232. 23C0-23CF ----    Compaq QVision - BitBLT engine
  3233.  
  3234. -------------------------------------------------------------------------------
  3235. 2400-24FF ----    available for EISA slot 2
  3236.  
  3237. -------------------------------------------------------------------------------
  3238. 2465      ----    Compaq Contura Aero
  3239.  
  3240.     r    current battery power level
  3241.         (166 fully-charged, 130 = LowBat1)
  3242.  
  3243.         See also: 1C65, 2065
  3244.  
  3245. -------------------------------------------------------------------------------
  3246. 27C6    r/w    LCD timeout in minutes (Compaq LTE Lite)
  3247.  
  3248. -------------------------------------------------------------------------------
  3249. 2800-28FF ----    available for EISA slot 2
  3250.  
  3251. -------------------------------------------------------------------------------
  3252. 28E9      ----    8514/A - WD Escape Functions
  3253.  
  3254. -------------------------------------------------------------------------------
  3255. 2C80-2C8F ----    VESA XGA Video in EISA slot 2 (see 1C80-1C8F)
  3256.  
  3257. -------------------------------------------------------------------------------
  3258. 2C80-2C83    EISA board product ID (board in slot 2)
  3259.  
  3260. -------------------------------------------------------------------------------
  3261. 3000-30FF ----    available for EISA slot 3
  3262.  
  3263. -------------------------------------------------------------------------------
  3264. 3220-3227 ----    serial port 3, description same as 03F8
  3265. 3228-322F ----    serial port 4, description same as 03F8
  3266.  
  3267. -------------------------------------------------------------------------------
  3268. 33C0-33CF ----    Compaq QVision - BitBLT engine
  3269.  
  3270. -------------------------------------------------------------------------------
  3271. 3400-34FF ----    available for EISA slot 3
  3272.  
  3273. -------------------------------------------------------------------------------
  3274. 3540-354F ----    IBM SCSI (Small Computer System Interface) adapter
  3275. 3550-355F ----    IBM SCSI (Small Computer System Interface) adapter
  3276. 3560-356F ----    IBM SCSI (Small Computer System Interface) adapter
  3277. 3570-357F ----    IBM SCSI (Small Computer System Interface) adapter
  3278.  
  3279. -------------------------------------------------------------------------------
  3280. 3800-38FF ----    available for EISA slot 3
  3281.  
  3282. -------------------------------------------------------------------------------
  3283. 3C00-3CFF ----    available for EISA slot 3
  3284.  
  3285. -------------------------------------------------------------------------------
  3286. 3C80-3C8F ----    VESA XGA Video in EISA slot 3
  3287.  
  3288. 3C80-3C83 r/w    EISA Video ID
  3289. 3C84    r/w    EISA Video expansion board control    
  3290. 3C85    r/w    EISA Setup control
  3291. 3C88    r/w    EISA Video Programmable Option Select 0
  3292. 3C89-3C8F r/w    EISA Video Programmable Option Select 1-7
  3293.  
  3294. SeeAlso: 1C80-1C8F,2C80-2C8F,7C80-7C8F
  3295.  
  3296. -------------------------------------------------------------------------------
  3297. 3C80-3C83    EISA board product ID (board in slot 3)
  3298.  
  3299. -------------------------------------------------------------------------------
  3300. 4000-40FF ----    available for EISA slot 4
  3301.  
  3302. -------------------------------------------------------------------------------
  3303. 4220-4227 ----    serial port, description same as 03F8
  3304. 4228-422F ----    serial port, description same as 03F8
  3305.  
  3306. -------------------------------------------------------------------------------
  3307. 42E0-42EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3308.  
  3309. 42E1    r/w    GPIB (adapter 2)
  3310.  
  3311. -------------------------------------------------------------------------------
  3312. 42E8      ----    8514/A and hardware-compatible video cards
  3313.  
  3314. 42E8    r    Subsystem Status
  3315. 42E8    w    Subsystem Control
  3316.  
  3317. -------------------------------------------------------------------------------
  3318. 4400-44FF ----    available for EISA slot 4
  3319.  
  3320. -------------------------------------------------------------------------------
  3321. 46E8      ----    VGA video adapter enable
  3322.  
  3323. 46E8    r/w    enable flags
  3324.         bits 7-5 unused or vendor-specific
  3325.         bit 4: setup for POS registers (MCA)
  3326.         bit 3: enable video I/O ports and video buffer
  3327.         bits 2-0 unused or vendor-specific
  3328.  
  3329. Note:    IBM uses this port for adapter-card VGAs only, and port 03C3 for
  3330.       motherboard VGA only
  3331.  
  3332. SeeAlso: 03C3
  3333.  
  3334. -------------------------------------------------------------------------------
  3335. 46E8      ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3336.  
  3337. 46E8    w    ROM page select
  3338.  
  3339. -------------------------------------------------------------------------------
  3340. 4800-48FF ----    available for EISA slot 4
  3341.  
  3342. -------------------------------------------------------------------------------
  3343. 4AE8-4AEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3344.  
  3345. 4AE8    w    Advanced function control
  3346.         (02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)
  3347.  
  3348. -------------------------------------------------------------------------------
  3349. 4C00-4CFF ----    available for EISA slot 4
  3350.  
  3351. -------------------------------------------------------------------------------
  3352. 4C80-4C83    EISA board product ID (board in slot 4)
  3353.  
  3354. -------------------------------------------------------------------------------
  3355. 4C80-4C8F ----    VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  3356.  
  3357. SeeAlso: 1C80-1C8F,6C80-6C8F
  3358.  
  3359. -------------------------------------------------------------------------------
  3360. 5000-50FF ----    available for EISA slot 5
  3361.  
  3362. -------------------------------------------------------------------------------
  3363. 5220-5227 ----    serial port, description same as 03F8
  3364. 5228-522F ----    serial port, description same as 03F8
  3365.  
  3366. -------------------------------------------------------------------------------
  3367. 5400-54FF ----    available for EISA slot 5
  3368.  
  3369. -------------------------------------------------------------------------------
  3370. 5800-58FF ----    available for EISA slot 5
  3371.  
  3372. -------------------------------------------------------------------------------
  3373. 5C00-5CFF ----    available for EISA slot 5
  3374.  
  3375. -------------------------------------------------------------------------------
  3376. 5C80-5C8F ----    VESA XGA Video in EISA slot 5
  3377.  
  3378. 5C80-5C83 r/w    EISA Video ID
  3379. 5C84    r/w    EISA Video expansion board control    
  3380. 5C85    r/w    EISA Setup control
  3381. 5C88    r/w    EISA Video Programmable Option Select 0
  3382. 5C89-5C8F r/w    EISA Video Programmable Option Select 1-7
  3383.  
  3384. SeeAlso: 2C80-2C8F,4C80-4C8F,6C80-6C8F
  3385.  
  3386. -------------------------------------------------------------------------------
  3387. 5C80-5C83    EISA board product ID (board in slot 5)
  3388.  
  3389. -------------------------------------------------------------------------------
  3390. 6000-60FF ----    available for EISA slot 6
  3391.  
  3392. -------------------------------------------------------------------------------
  3393. 62E0-62EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3394.  
  3395. 62E1    r/w    GPIB (adapter 3)
  3396.  
  3397. -------------------------------------------------------------------------------
  3398. 63C0-63CF ----    Compaq QVision - BitBLT engine
  3399.  
  3400. -------------------------------------------------------------------------------
  3401. 6400-64FF ----    available for EISA slot 6
  3402.  
  3403. -------------------------------------------------------------------------------
  3404. 6800-68FF ----    available for EISA slot 6
  3405.  
  3406. -------------------------------------------------------------------------------
  3407. 6C00-6CFF ----    available for EISA slot 6
  3408.  
  3409. -------------------------------------------------------------------------------
  3410. 6C80-6C83    EISA board product ID (board in slot 6)
  3411.  
  3412. -------------------------------------------------------------------------------
  3413. 6C80-6C8F ----    VESA XGA Video in EISA slot 1
  3414.  
  3415. 6C80-6C83 r/w    EISA Video ID
  3416. 6C84    r/w    EISA Video expansion board control    
  3417. 6C85    r/w    EISA Setup control
  3418. 6C88    r/w    EISA Video Programmable Option Select 0
  3419. 6C89-1C8F r/w    EISA Video Programmable Option Select 1-7
  3420.  
  3421. SeeAlso: 1C80-1C8F,2C80-2C8F,5C80-5C8F
  3422.  
  3423. -------------------------------------------------------------------------------
  3424. 7000-70FF ----    available for EISA slot 7
  3425.  
  3426. -------------------------------------------------------------------------------
  3427. 7400-74FF ----    available for EISA slot 7
  3428.  
  3429. -------------------------------------------------------------------------------
  3430. 7800-78FF ----    available for EISA slot 7
  3431.  
  3432. -------------------------------------------------------------------------------
  3433. 7C00-7CFF ----    available for EISA slot 7
  3434.  
  3435. -------------------------------------------------------------------------------
  3436. 7C80-7C83    EISA board product ID (board in slot 7)
  3437.  
  3438. -------------------------------------------------------------------------------
  3439. 7C80-7C8F ----    VESA XGA Video in EISA slot 7
  3440.  
  3441. 7C80-7C83 r/w    EISA Video ID
  3442. 7C84    r/w    EISA Video expansion board control    
  3443. 7C85    r/w    EISA Setup control
  3444. 7C88    r/w    EISA Video Programmable Option Select 0
  3445. 7C89-7C8F r/w    EISA Video Programmable Option Select 1-7
  3446.  
  3447. SeeAlso: 1C80-1C8F, 6C80-6C8F
  3448.  
  3449. -------------------------------------------------------------------------------
  3450. 8000-80FF ----    available for EISA slot 8
  3451.  
  3452. -------------------------------------------------------------------------------
  3453. 82E0-82EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3454.  
  3455. 82E1    r/w    GPIB (adapter 4)
  3456.  
  3457. -------------------------------------------------------------------------------
  3458. 82E8-82EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3459.  
  3460. 82E8    w    current Y position
  3461.  
  3462. -------------------------------------------------------------------------------
  3463. 82F8-82FF ----    serial port, description same as 03F8
  3464. 83F8-83FF ----    serial port, description same as 03F8
  3465.  
  3466. -------------------------------------------------------------------------------
  3467. 83C0-83CF ----    Compaq QVision - Line Draw Engine
  3468.  
  3469. -------------------------------------------------------------------------------
  3470. 83C4      ----    Compaq Qvision EISA - Virtual Controller Select
  3471.  
  3472. -------------------------------------------------------------------------------
  3473. 83C6-83C9 ----    Compaq Qvision EISA - DAC color registers
  3474.  
  3475. -------------------------------------------------------------------------------
  3476. 8400-84FF ----    available for EISA slot 8
  3477.  
  3478. -------------------------------------------------------------------------------
  3479. 86E8-86EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3480.  
  3481. 86E8    w    current X position
  3482.  
  3483. -------------------------------------------------------------------------------
  3484. 8800-88FF ----    available for EISA slot 8
  3485.  
  3486. -------------------------------------------------------------------------------
  3487. 8AE8-8AEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3488.  
  3489. 8AE8    w    destination Y position / axial step constant
  3490.  
  3491. -------------------------------------------------------------------------------
  3492. 8C00-8CFF ----    available for EISA slot 8
  3493.  
  3494. -------------------------------------------------------------------------------
  3495. 8C80-8C83    EISA board product ID (board in slot 8)
  3496.  
  3497. -------------------------------------------------------------------------------
  3498. 8EE8-8EEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3499.  
  3500. 8EE8    w    destination X position / axial step constant
  3501.  
  3502. -------------------------------------------------------------------------------
  3503. 9000-90FF ----    available for EISA slot 9
  3504.  
  3505. -------------------------------------------------------------------------------
  3506. 92E8-92EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3507.  
  3508. 92E8    w    error term
  3509.  
  3510. -------------------------------------------------------------------------------
  3511. 9400-94FF ----    available for EISA slot 9
  3512.  
  3513. -------------------------------------------------------------------------------
  3514. 96E8-96EF ----    8514/A and hardware-compatible video cards
  3515.  
  3516. 96E8    r    Enter WD Enhanced Mode
  3517. 96E8    w    major axis pixel count
  3518.  
  3519. -------------------------------------------------------------------------------
  3520. 9800-98FF ----    available for EISA slot 9
  3521.  
  3522. -------------------------------------------------------------------------------
  3523. 9AE8h-9AE9h ----  8514/A Graphics Processor Status
  3524.  
  3525. 9AE8w    r    bit 9: hardware busy
  3526. 9AE8    w    command
  3527.  
  3528. -------------------------------------------------------------------------------
  3529. 9C00-9CFF ----    available for EISA slot 9
  3530.  
  3531. -------------------------------------------------------------------------------
  3532. 9C80-9C83    EISA board product ID (board in slot 9)
  3533.  
  3534. -------------------------------------------------------------------------------
  3535. A220      ????    soundblaster support in AMI Hi-Flex BIOS  ????
  3536.  
  3537. -------------------------------------------------------------------------------
  3538. A2E0-A2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3539.  
  3540. A2E1    r/w    GPIB (adapter 5)
  3541.  
  3542. -------------------------------------------------------------------------------
  3543. A2E8-A2EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3544.  
  3545. A2E8    w    background color
  3546.  
  3547. -------------------------------------------------------------------------------
  3548. A6E8-A6EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3549.  
  3550. A6E8    w    foreground color
  3551.  
  3552. -------------------------------------------------------------------------------
  3553. AAE8-AAEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3554.  
  3555. AAE8    w    write mask
  3556.  
  3557. -------------------------------------------------------------------------------
  3558. AEE8-AEEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3559.  
  3560. AEE8    w    read mask
  3561.  
  3562. -------------------------------------------------------------------------------
  3563. AFFF    r/w    plane 0-3 system latch (video register)
  3564.  
  3565. -------------------------------------------------------------------------------
  3566. B220-B227 ----    serial port, description same as 03F8
  3567. B228-B22F ----    serial port, description same as 03F8
  3568.  
  3569. -------------------------------------------------------------------------------
  3570. B2E8-B2EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3571.  
  3572. B2E8    w    color compare
  3573.  
  3574. -------------------------------------------------------------------------------
  3575. B6E8-B6EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3576.  
  3577. B6E8    w    background mix
  3578.  
  3579. -------------------------------------------------------------------------------
  3580. BAE8-BAEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3581.  
  3582. BAE8    w    foreground mix
  3583.  
  3584. -------------------------------------------------------------------------------
  3585. BEE8-BEEF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3586.  
  3587. BEE8    w    multi-function control
  3588.  
  3589. -------------------------------------------------------------------------------
  3590. C008      ----    Intel Pentium motherboard ("Neptune" chipset)
  3591.  
  3592. -------------------------------------------------------------------------------
  3593. C050      ----    Intel Pentium motherboard ("Neptune" chipset)
  3594.  
  3595. C050    r/w    bit 2: ???
  3596.  
  3597. -------------------------------------------------------------------------------
  3598. C052      ----    Intel Pentium motherboard ("Neptune" chipset)
  3599.  
  3600. C052    r/???    bits 6,7: ???
  3601.  
  3602. -------------------------------------------------------------------------------
  3603. C220-C227 ----    serial port, description same as 03F8
  3604. C228-C22F ----    serial port, description same as 03F8
  3605.  
  3606. -------------------------------------------------------------------------------
  3607. C2E0-C2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3608.  
  3609. C2E1    r/w    GPIB (adapter 6)
  3610.  
  3611. -------------------------------------------------------------------------------
  3612. D220-D227 ----    serial port, description same as 03F8
  3613. D228-D22F ----    serial port, description same as 03F8
  3614.  
  3615. -------------------------------------------------------------------------------
  3616. E2E0-E2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3617.  
  3618. E2E1    r/w    GPIB (adapter 7)
  3619.  
  3620. -------------------------------------------------------------------------------
  3621. E2E8-E2EF ----    8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3622.  
  3623. E2E8    w    pixel data transfer
  3624.  
  3625. -------------------------------------------------------------------------------
  3626.  
  3627. MEMORY-MAPPED ADDRESSES
  3628.  
  3629. -------------------------------------------------------------------------------
  3630. 80C00000  Compaq Deskpro 386 system memory board register
  3631.  
  3632. 80C00000 w    RAM relocation register
  3633.         bit 7-2       Reserved, always write 1's.
  3634.         bit 1 = 0  Write-protect 128-Kbyte RAM at FE0000.
  3635.               = 1  Do not write-protect RAM at FE0000.
  3636.         bit 0 = 0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  3637.               = 1  128-Kbyte RAM is addressed only at FE0000.
  3638.  
  3639. 80C00000 r    Diagnostics register
  3640.         bit 7    = 0  memory expansion board is installed
  3641.         bit 6    = 0  second 1 MB of system memory board is installed
  3642.         bit 5-4 = 00 base memory set to 640 KB
  3643.               01 invalid
  3644.               10 base memory set to 512 KB
  3645.               11 base memory set to 256 KB
  3646.         bit 3    = 0  parity error in byte 3
  3647.         bit 2    = 0  parity error in byte 2
  3648.         bit 1    = 0  parity error in byte 1
  3649.         bit 0    = 0  parity error in byte 0 (in 32-bit double word)
  3650.  
  3651. -------------------------------------------------------------------------------
  3652. C0000000-C000FFFF    Weitek "Abacus" math coprocessor
  3653.  
  3654. -------------------------------------------------------------------------------
  3655.  
  3656.  
  3657.  
  3658.  
  3659. -------------CREDITS-------------------------
  3660. Chuck Proctor <71534.2302@CompuServe.COM>
  3661. Richard W. Watson  <73042.1420@CompuServe.COM>
  3662.  
  3663. [Some of the information in this list was extracted from Frank van Gilluwe's
  3664. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  3665. "bare metal" of a PC.]
  3666.  
  3667. [Some of the information in this list from the shareware version of Dave
  3668. Williams' DOSREF, v3.0]
  3669.  
  3670. [8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM]
  3671.  
  3672. [Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
  3673. _Reference_Guide_, second edition (October 1993).  Compaq part number
  3674. 073A/0693.  Much more to come!]
  3675.  
  3676. [AMI keyboard controller port 0064 commands from the American Megatrends, Inc.
  3677. _Version_KF_and_KH_Keyboard_Controller_BIOS_Reference_, available on the
  3678. AMI BBS and american.megatrends.com as KFKHMAN.ZIP.]
  3679.  
  3680.